2 // Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
4 // Distributed under the Boost Software License, Version 1.0. (See accompanying
5 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 // Official repository: https://github.com/boostorg/beast
10 #ifndef BOOST_BEAST_HTTP_IMPL_VERB_IPP
11 #define BOOST_BEAST_HTTP_IMPL_VERB_IPP
13 #include <boost/beast/http/verb.hpp>
14 #include <boost/throw_exception.hpp>
24 using namespace beast::detail::string_literals;
27 case verb::delete_: return "DELETE"_sv;
28 case verb::get: return "GET"_sv;
29 case verb::head: return "HEAD"_sv;
30 case verb::post: return "POST"_sv;
31 case verb::put: return "PUT"_sv;
32 case verb::connect: return "CONNECT"_sv;
33 case verb::options: return "OPTIONS"_sv;
34 case verb::trace: return "TRACE"_sv;
36 case verb::copy: return "COPY"_sv;
37 case verb::lock: return "LOCK"_sv;
38 case verb::mkcol: return "MKCOL"_sv;
39 case verb::move: return "MOVE"_sv;
40 case verb::propfind: return "PROPFIND"_sv;
41 case verb::proppatch: return "PROPPATCH"_sv;
42 case verb::search: return "SEARCH"_sv;
43 case verb::unlock: return "UNLOCK"_sv;
44 case verb::bind: return "BIND"_sv;
45 case verb::rebind: return "REBIND"_sv;
46 case verb::unbind: return "UNBIND"_sv;
47 case verb::acl: return "ACL"_sv;
49 case verb::report: return "REPORT"_sv;
50 case verb::mkactivity: return "MKACTIVITY"_sv;
51 case verb::checkout: return "CHECKOUT"_sv;
52 case verb::merge: return "MERGE"_sv;
54 case verb::msearch: return "M-SEARCH"_sv;
55 case verb::notify: return "NOTIFY"_sv;
56 case verb::subscribe: return "SUBSCRIBE"_sv;
57 case verb::unsubscribe: return "UNSUBSCRIBE"_sv;
59 case verb::patch: return "PATCH"_sv;
60 case verb::purge: return "PURGE"_sv;
62 case verb::mkcalendar: return "MKCALENDAR"_sv;
64 case verb::link: return "LINK"_sv;
65 case verb::unlink: return "UNLINK"_sv;
68 return "<unknown>"_sv;
71 BOOST_THROW_EXCEPTION(std::invalid_argument{"unknown verb"});
75 string_to_verb(string_view v)
112 using namespace beast::detail::string_literals;
114 return verb::unknown;
136 return verb::checkout;
141 return verb::connect;
153 return verb::delete_;
180 return verb::msearch;
189 if(v == "ACTIVITY"_sv)
190 return verb::mkactivity;
194 if(v == "ALENDAR"_sv)
195 return verb::mkcalendar;
219 return verb::options;
239 return verb::propfind;
240 if(v == "OPPATCH"_sv)
241 return verb::proppatch;
269 if(v == "UBSCRIBE"_sv)
270 return verb::subscribe;
288 if(v == "SUBSCRIBE"_sv)
289 return verb::unsubscribe;
296 return verb::unknown;