magpie
Loading...
Searching...
No Matches
Methods.hpp
1#pragma once
2
3#include <string>
4#include <unordered_map>
5
6namespace magpie::Method {
7
13enum HttpMethod {
14 // Default HTTP {{{
15 Connect,
16 Delete,
17 Get,
18 Head,
19 Options,
20 // Patch is _technically_ an extension, but it's so broadly used that it doesn't matter
21 Patch,
22 Post,
23 Put,
24 Trace,
25 // }}}
26 // Various extensions {{{
27 Acl,
28 Baseline_control,
29 Bind,
30 Checkin,
31 Checkout,
32 Copy,
33 Label,
34 Link,
35 Lock,
36 Merge,
37 Mkactivity,
38 Mkcalendar,
39 Mkcol,
40 Mkredirectref,
41 Mkworkspace,
42 Move,
43 Orderpatch,
44 Pri,
45 Propfind,
46 Proppatch,
47 Query,
48 Rebind,
49 Report,
50 Search,
51 Unbind,
52 Uncheckout,
53 Unlink,
54 Unlock,
55 Update,
56 Updatedirectref,
57 Version_control,
58 // }}}
59};
60
61namespace _detail {
66static inline const std::unordered_map<std::string, HttpMethod> strToMethod {
67 { "CONNECT", Connect },
68 { "DELETE", Delete },
69 { "GET", Get },
70 { "HEAD", Head },
71 { "OPTIONS", Options },
72 { "PATCH", Patch },
73 { "POST", Post },
74 { "PUT", Put },
75 { "TRACE", Trace },
76 { "ACL", Acl },
77 { "BASELINE-CONTROL", Baseline_control },
78 { "BIND", Bind },
79 { "CHECKIN", Checkin },
80 { "CHECKOUT", Checkout },
81 { "COPY", Copy },
82 { "LABEL", Label },
83 { "LINK", Link },
84 { "LOCK", Lock },
85 { "MERGE", Merge },
86 { "MKACTIVITY", Mkactivity },
87 { "MKCALENDAR", Mkcalendar },
88 { "MKCOL", Mkcol },
89 { "MKREDIRECTREF", Mkredirectref },
90 { "MKWORKSPACE", Mkworkspace },
91 { "MOVE", Move },
92 { "ORDERPATCH", Orderpatch },
93 { "PRI", Pri },
94 { "PROPFIND", Propfind },
95 { "PROPPATCH", Proppatch },
96 { "QUERY", Query },
97 { "REBIND", Rebind },
98 { "REPORT", Report },
99 { "SEARCH", Search },
100 { "UNBIND", Unbind },
101 { "UNCHECKOUT", Uncheckout },
102 { "UNLINK", Unlink },
103 { "UNLOCK", Unlock },
104 { "UPDATE", Update },
105 { "UPDATEDIRECTREF", Updatedirectref },
106 { "VERSION-CONTROL", Version_control },
107};
108}
109
110}