mirror of
https://github.com/CrowCpp/Crow.git
synced 2024-06-07 21:10:44 +00:00
Add HTTP PATCH support
This commit is contained in:
parent
16a0f6b663
commit
8b01385465
@ -19,6 +19,7 @@ namespace crow
|
||||
CONNECT,
|
||||
OPTIONS,
|
||||
TRACE,
|
||||
PATCH = 24,
|
||||
#endif
|
||||
|
||||
Delete = 0,
|
||||
@ -29,6 +30,7 @@ namespace crow
|
||||
Connect,
|
||||
Options,
|
||||
Trace,
|
||||
Patch = 24,
|
||||
};
|
||||
|
||||
inline std::string method_name(HTTPMethod method)
|
||||
@ -51,6 +53,8 @@ namespace crow
|
||||
return "OPTIONS";
|
||||
case HTTPMethod::Trace:
|
||||
return "TRACE";
|
||||
case HTTPMethod::Patch:
|
||||
return "PATCH";
|
||||
}
|
||||
return "invalid";
|
||||
}
|
||||
@ -132,6 +136,7 @@ constexpr crow::HTTPMethod operator "" _method(const char* str, size_t /*len*/)
|
||||
crow::black_magic::is_equ_p(str, "OPTIONS", 7) ? crow::HTTPMethod::Options :
|
||||
crow::black_magic::is_equ_p(str, "CONNECT", 7) ? crow::HTTPMethod::Connect :
|
||||
crow::black_magic::is_equ_p(str, "TRACE", 5) ? crow::HTTPMethod::Trace :
|
||||
crow::black_magic::is_equ_p(str, "PATCH", 5) ? crow::HTTPMethod::Patch :
|
||||
throw std::runtime_error("invalid http method");
|
||||
}
|
||||
#endif
|
||||
|
@ -324,6 +324,11 @@ TEST(http_method)
|
||||
([](const request& /*req*/){
|
||||
return "post";
|
||||
});
|
||||
CROW_ROUTE(app, "/patch_only")
|
||||
.methods("PATCH"_method)
|
||||
([](const request& /*req*/){
|
||||
return "patch";
|
||||
});
|
||||
|
||||
|
||||
// cannot have multiple handlers for the same url
|
||||
@ -361,6 +366,17 @@ TEST(http_method)
|
||||
ASSERT_EQUAL("get", res.body);
|
||||
}
|
||||
|
||||
{
|
||||
request req;
|
||||
response res;
|
||||
|
||||
req.url = "/patch_only";
|
||||
req.method = "PATCH"_method;
|
||||
app.handle(req, res);
|
||||
|
||||
ASSERT_EQUAL("patch", res.body);
|
||||
}
|
||||
|
||||
{
|
||||
request req;
|
||||
response res;
|
||||
|
Loading…
Reference in New Issue
Block a user