Mercurial > hg > orthanc
comparison Core/RestApi/RestApi.h @ 659:443cced10836
code cleaning
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 04 Nov 2013 14:41:46 +0100 |
parents | c9a5d72f8481 |
children | 2d0a347e8cfc |
comparison
equal
deleted
inserted
replaced
658:e8e59e80868c | 659:443cced10836 |
---|---|
46 class Call | 46 class Call |
47 { | 47 { |
48 friend class RestApi; | 48 friend class RestApi; |
49 | 49 |
50 private: | 50 private: |
51 RestApiOutput* output_; | 51 RestApiOutput& output_; |
52 RestApi* context_; | 52 RestApi& context_; |
53 const HttpHandler::Arguments* httpHeaders_; | 53 const HttpHandler::Arguments& httpHeaders_; |
54 const RestApiPath::Components* uriComponents_; | 54 const RestApiPath::Components& uriComponents_; |
55 const UriComponents* trailing_; | 55 const UriComponents& trailing_; |
56 const UriComponents* fullUri_; | 56 const UriComponents& fullUri_; |
57 | |
58 Call(RestApiOutput& output, | |
59 RestApi& context, | |
60 const HttpHandler::Arguments& httpHeaders, | |
61 const RestApiPath::Components& uriComponents, | |
62 const UriComponents& trailing, | |
63 const UriComponents& fullUri) : | |
64 output_(output), | |
65 context_(context), | |
66 httpHeaders_(httpHeaders), | |
67 uriComponents_(uriComponents), | |
68 trailing_(trailing), | |
69 fullUri_(fullUri) | |
70 { | |
71 } | |
57 | 72 |
58 protected: | 73 protected: |
59 static bool ParseJsonRequestInternal(Json::Value& result, | 74 static bool ParseJsonRequestInternal(Json::Value& result, |
60 const char* request); | 75 const char* request); |
61 | 76 |
62 public: | 77 public: |
63 RestApiOutput& GetOutput() | 78 RestApiOutput& GetOutput() |
64 { | 79 { |
65 return *output_; | 80 return output_; |
66 } | 81 } |
67 | 82 |
68 RestApi& GetContext() | 83 RestApi& GetContext() |
69 { | 84 { |
70 return *context_; | 85 return context_; |
71 } | 86 } |
72 | 87 |
73 const UriComponents& GetFullUri() const | 88 const UriComponents& GetFullUri() const |
74 { | 89 { |
75 return *fullUri_; | 90 return fullUri_; |
76 } | 91 } |
77 | 92 |
78 const UriComponents& GetTrailingUri() const | 93 const UriComponents& GetTrailingUri() const |
79 { | 94 { |
80 return *trailing_; | 95 return trailing_; |
81 } | 96 } |
82 | 97 |
83 std::string GetUriComponent(const std::string& name, | 98 std::string GetUriComponent(const std::string& name, |
84 const std::string& defaultValue) const | 99 const std::string& defaultValue) const |
85 { | 100 { |
86 return HttpHandler::GetArgument(*uriComponents_, name, defaultValue); | 101 return HttpHandler::GetArgument(uriComponents_, name, defaultValue); |
87 } | 102 } |
88 | 103 |
89 std::string GetHttpHeader(const std::string& name, | 104 std::string GetHttpHeader(const std::string& name, |
90 const std::string& defaultValue) const | 105 const std::string& defaultValue) const |
91 { | 106 { |
92 return HttpHandler::GetArgument(*httpHeaders_, name, defaultValue); | 107 return HttpHandler::GetArgument(httpHeaders_, name, defaultValue); |
93 } | 108 } |
94 | 109 |
95 const HttpHandler::Arguments& GetHttpHeaders() const | 110 const HttpHandler::Arguments& GetHttpHeaders() const |
96 { | 111 { |
97 return *httpHeaders_; | 112 return httpHeaders_; |
98 } | 113 } |
99 | 114 |
100 void ParseCookies(HttpHandler::Arguments& result) const | 115 void ParseCookies(HttpHandler::Arguments& result) const |
101 { | 116 { |
102 HttpHandler::ParseCookies(result, *httpHeaders_); | 117 HttpHandler::ParseCookies(result, httpHeaders_); |
103 } | 118 } |
104 | 119 |
105 virtual bool ParseJsonRequest(Json::Value& result) const = 0; | 120 virtual bool ParseJsonRequest(Json::Value& result) const = 0; |
106 }; | 121 }; |
107 | 122 |
109 class GetCall : public Call | 124 class GetCall : public Call |
110 { | 125 { |
111 friend class RestApi; | 126 friend class RestApi; |
112 | 127 |
113 private: | 128 private: |
114 const HttpHandler::Arguments* getArguments_; | 129 const HttpHandler::Arguments& getArguments_; |
115 | 130 |
116 public: | 131 public: |
132 GetCall(RestApiOutput& output, | |
133 RestApi& context, | |
134 const HttpHandler::Arguments& httpHeaders, | |
135 const RestApiPath::Components& uriComponents, | |
136 const UriComponents& trailing, | |
137 const UriComponents& fullUri, | |
138 const HttpHandler::Arguments& getArguments) : | |
139 Call(output, context, httpHeaders, uriComponents, trailing, fullUri), | |
140 getArguments_(getArguments) | |
141 { | |
142 } | |
143 | |
117 std::string GetArgument(const std::string& name, | 144 std::string GetArgument(const std::string& name, |
118 const std::string& defaultValue) const | 145 const std::string& defaultValue) const |
119 { | 146 { |
120 return HttpHandler::GetArgument(*getArguments_, name, defaultValue); | 147 return HttpHandler::GetArgument(getArguments_, name, defaultValue); |
121 } | 148 } |
122 | 149 |
123 bool HasArgument(const std::string& name) const | 150 bool HasArgument(const std::string& name) const |
124 { | 151 { |
125 return getArguments_->find(name) != getArguments_->end(); | 152 return getArguments_.find(name) != getArguments_.end(); |
126 } | 153 } |
127 | 154 |
128 virtual bool ParseJsonRequest(Json::Value& result) const; | 155 virtual bool ParseJsonRequest(Json::Value& result) const; |
129 }; | 156 }; |
130 | 157 |
158 | |
131 class PutCall : public Call | 159 class PutCall : public Call |
132 { | 160 { |
133 friend class RestApi; | 161 friend class RestApi; |
134 | 162 |
135 private: | 163 private: |
136 const std::string* data_; | 164 const std::string& data_; |
137 | 165 |
138 public: | 166 public: |
167 PutCall(RestApiOutput& output, | |
168 RestApi& context, | |
169 const HttpHandler::Arguments& httpHeaders, | |
170 const RestApiPath::Components& uriComponents, | |
171 const UriComponents& trailing, | |
172 const UriComponents& fullUri, | |
173 const std::string& data) : | |
174 Call(output, context, httpHeaders, uriComponents, trailing, fullUri), | |
175 data_(data) | |
176 { | |
177 } | |
178 | |
139 const std::string& GetPutBody() const | 179 const std::string& GetPutBody() const |
140 { | 180 { |
141 return *data_; | 181 return data_; |
142 } | 182 } |
143 | 183 |
144 virtual bool ParseJsonRequest(Json::Value& result) const | 184 virtual bool ParseJsonRequest(Json::Value& result) const |
145 { | 185 { |
146 return ParseJsonRequestInternal(result, GetPutBody().c_str()); | 186 return ParseJsonRequestInternal(result, GetPutBody().c_str()); |
150 class PostCall : public Call | 190 class PostCall : public Call |
151 { | 191 { |
152 friend class RestApi; | 192 friend class RestApi; |
153 | 193 |
154 private: | 194 private: |
155 const std::string* data_; | 195 const std::string& data_; |
156 | 196 |
157 public: | 197 public: |
198 PostCall(RestApiOutput& output, | |
199 RestApi& context, | |
200 const HttpHandler::Arguments& httpHeaders, | |
201 const RestApiPath::Components& uriComponents, | |
202 const UriComponents& trailing, | |
203 const UriComponents& fullUri, | |
204 const std::string& data) : | |
205 Call(output, context, httpHeaders, uriComponents, trailing, fullUri), | |
206 data_(data) | |
207 { | |
208 } | |
209 | |
158 const std::string& GetPostBody() const | 210 const std::string& GetPostBody() const |
159 { | 211 { |
160 return *data_; | 212 return data_; |
161 } | 213 } |
162 | 214 |
163 virtual bool ParseJsonRequest(Json::Value& result) const | 215 virtual bool ParseJsonRequest(Json::Value& result) const |
164 { | 216 { |
165 return ParseJsonRequestInternal(result, GetPostBody().c_str()); | 217 return ParseJsonRequestInternal(result, GetPostBody().c_str()); |
167 }; | 219 }; |
168 | 220 |
169 class DeleteCall : public Call | 221 class DeleteCall : public Call |
170 { | 222 { |
171 public: | 223 public: |
224 DeleteCall(RestApiOutput& output, | |
225 RestApi& context, | |
226 const HttpHandler::Arguments& httpHeaders, | |
227 const RestApiPath::Components& uriComponents, | |
228 const UriComponents& trailing, | |
229 const UriComponents& fullUri) : | |
230 Call(output, context, httpHeaders, uriComponents, trailing, fullUri) | |
231 { | |
232 } | |
233 | |
172 virtual bool ParseJsonRequest(Json::Value& result) const | 234 virtual bool ParseJsonRequest(Json::Value& result) const |
173 { | 235 { |
174 result.clear(); | 236 result.clear(); |
175 return true; | 237 return true; |
176 } | 238 } |