mirror of
https://github.com/Expand-sys/CCash
synced 2026-03-22 12:37:08 +11:00
✨ Accept Filter
This commit is contained in:
parent
8b30588d8f
commit
f0a296d97b
3 changed files with 32 additions and 0 deletions
|
|
@ -17,6 +17,7 @@ add_executable(${PROJECT_NAME} main.cpp )
|
|||
add_subdirectory(third_party/xxHash/cmake_unofficial third_party/xxHash/build EXCLUDE_FROM_ALL)
|
||||
|
||||
target_sources(${PROJECT_NAME} PRIVATE
|
||||
src/json_filter.cpp
|
||||
src/admin_filter.cpp
|
||||
src/bank_api.cpp
|
||||
src/bank.cpp
|
||||
|
|
|
|||
14
include/json_filter.h
Normal file
14
include/json_filter.h
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
#pragma once
|
||||
#include <drogon/HttpFilter.h>
|
||||
|
||||
using namespace drogon;
|
||||
|
||||
class JsonFilter : public HttpFilter<JsonFilter, false>
|
||||
{
|
||||
public:
|
||||
JsonFilter();
|
||||
|
||||
virtual void doFilter(const HttpRequestPtr &,
|
||||
FilterCallback &&,
|
||||
FilterChainCallback &&) override;
|
||||
};
|
||||
17
src/json_filter.cpp
Normal file
17
src/json_filter.cpp
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
#include "json_filter.h"
|
||||
|
||||
JsonFilter::JsonFilter() {}
|
||||
|
||||
void JsonFilter::doFilter(const HttpRequestPtr &req,
|
||||
FilterCallback &&fcb,
|
||||
FilterChainCallback &&fccb)
|
||||
{
|
||||
if (req->getHeader("Content-Type") == "application/json" && req->getHeader("Accept") == "application/json")
|
||||
{
|
||||
fccb();
|
||||
return;
|
||||
}
|
||||
const auto &resp = HttpResponse::newHttpJsonResponse("Client must Accept JSON");
|
||||
resp->setStatusCode(k406NotAcceptable);
|
||||
fcb(resp);
|
||||
}
|
||||
Loading…
Reference in a new issue