Enable PATCH method in crow
Change-Id: I1a6130939c1b2811bf036d968aeb588a0c6f7181
Signed-off-by: Borawski.Lukasz <lukasz.borawski@intel.com>
diff --git a/crow/include/crow/common.h b/crow/include/crow/common.h
index 7807ccb..62f7a8f 100644
--- a/crow/include/crow/common.h
+++ b/crow/include/crow/common.h
@@ -17,6 +17,7 @@
CONNECT,
OPTIONS,
TRACE,
+ PATCH = 24, // see http_parser_merged.h line 118 for why it is 24
#endif
Delete = 0,
@@ -27,6 +28,7 @@
Connect,
Options,
Trace,
+ Patch = 24,
};
inline std::string method_name(HTTPMethod method) {
@@ -47,6 +49,8 @@
return "OPTIONS";
case HTTPMethod::Trace:
return "TRACE";
+ case HTTPMethod::Patch:
+ return "PATCH";
}
return "invalid";
}
@@ -69,17 +73,21 @@
void debug_print() const {
std::cerr << "routing_params" << std::endl;
- for (auto i : int_params) { std::cerr << i << ", ";
-}
+ for (auto i : int_params) {
+ std::cerr << i << ", ";
+ }
std::cerr << std::endl;
- for (auto i : uint_params) { std::cerr << i << ", ";
-}
+ for (auto i : uint_params) {
+ std::cerr << i << ", ";
+ }
std::cerr << std::endl;
- for (auto i : double_params) { std::cerr << i << ", ";
-}
+ for (auto i : double_params) {
+ std::cerr << i << ", ";
+ }
std::cerr << std::endl;
- for (auto& i : string_params) { std::cerr << i << ", ";
-}
+ for (auto& i : string_params) {
+ std::cerr << i << ", ";
+ }
std::cerr << std::endl;
}
@@ -109,28 +117,25 @@
} // namespace crow
constexpr crow::HTTPMethod operator"" _method(const char* str, size_t /*len*/) {
- return crow::black_magic::is_equ_p(str, "GET", 3)
- ? crow::HTTPMethod::Get
- : crow::black_magic::is_equ_p(str, "DELETE", 6)
- ? crow::HTTPMethod::Delete
- : crow::black_magic::is_equ_p(str, "HEAD", 4)
- ? crow::HTTPMethod::Head
- : crow::black_magic::is_equ_p(str, "POST", 4)
- ? crow::HTTPMethod::Post
- : crow::black_magic::is_equ_p(str, "PUT", 3)
- ? crow::HTTPMethod::Put
- : 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
- : throw std::
- runtime_error(
- "invalid http "
- "method");
+ if (crow::black_magic::is_equ_p(str, "GET", 3)) {
+ return crow::HTTPMethod::Get;
+ } else if (crow::black_magic::is_equ_p(str, "DELETE", 6)) {
+ return crow::HTTPMethod::Delete;
+ } else if (crow::black_magic::is_equ_p(str, "HEAD", 4)) {
+ return crow::HTTPMethod::Head;
+ } else if (crow::black_magic::is_equ_p(str, "POST", 4)) {
+ return crow::HTTPMethod::Post;
+ } else if (crow::black_magic::is_equ_p(str, "PUT", 3)) {
+ return crow::HTTPMethod::Put;
+ } else if (crow::black_magic::is_equ_p(str, "OPTIONS", 7)) {
+ return crow::HTTPMethod::Options;
+ } else if (crow::black_magic::is_equ_p(str, "CONNECT", 7)) {
+ return crow::HTTPMethod::Connect;
+ } else if (crow::black_magic::is_equ_p(str, "TRACE", 5)) {
+ return crow::HTTPMethod::Trace;
+ } else if (crow::black_magic::is_equ_p(str, "PATCH", 5)) {
+ return crow::HTTPMethod::Patch;
+ } else {
+ throw std:: runtime_error( "invalid http method");
+ }
}
-