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 }