mirror of
https://github.com/Expand-sys/CCash
synced 2026-03-23 04:57:09 +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)
|
add_subdirectory(third_party/xxHash/cmake_unofficial third_party/xxHash/build EXCLUDE_FROM_ALL)
|
||||||
|
|
||||||
target_sources(${PROJECT_NAME} PRIVATE
|
target_sources(${PROJECT_NAME} PRIVATE
|
||||||
|
src/json_filter.cpp
|
||||||
src/admin_filter.cpp
|
src/admin_filter.cpp
|
||||||
src/bank_api.cpp
|
src/bank_api.cpp
|
||||||
src/bank.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