author | Michael Krelin <hacker@klever.net> | 2008-03-08 11:26:07 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2008-03-08 11:26:07 (UTC) |
commit | 1d108d28c5c2bd55827021aef944a48421bfb3ef (patch) (unidiff) | |
tree | 51b38dffc4dc18536cebf1133b5dcba5aa74bfd6 | |
parent | f953b073abbf9e58e5b2a46c6ddf65f57dec1fad (diff) | |
download | libopkele-1d108d28c5c2bd55827021aef944a48421bfb3ef.zip libopkele-1d108d28c5c2bd55827021aef944a48421bfb3ef.tar.gz libopkele-1d108d28c5c2bd55827021aef944a48421bfb3ef.tar.bz2 |
moving towards simplifying request-making.
Signed-off-by: Michael Krelin <hacker@klever.net>
-rw-r--r-- | include/opkele/oauth/consumer.h | 14 | ||||
-rw-r--r-- | lib/oauth-consumer.cc | 18 |
2 files changed, 25 insertions, 7 deletions
diff --git a/include/opkele/oauth/consumer.h b/include/opkele/oauth/consumer.h index 9196297..eb4f753 100644 --- a/include/opkele/oauth/consumer.h +++ b/include/opkele/oauth/consumer.h | |||
@@ -11,7 +11,8 @@ namespace opkele { | |||
11 | using std::string; | 11 | using std::string; |
12 | 12 | ||
13 | enum oauth_method_t { | 13 | enum oauth_method_t { |
14 | oauth_auth_header, oauth_post_body, oauth_url_query | 14 | oauth_auth_header, oauth_post_body, oauth_url_query, |
15 | oauth_method_default = oauth_auth_header | ||
15 | }; | 16 | }; |
16 | 17 | ||
17 | struct service_endpoint_t { | 18 | struct service_endpoint_t { |
@@ -19,7 +20,8 @@ namespace opkele { | |||
19 | string signature_method; | 20 | string signature_method; |
20 | oauth_method_t oauth_method; | 21 | oauth_method_t oauth_method; |
21 | 22 | ||
22 | service_endpoint_t(const string& u,const string& sm,oauth_method_t om) | 23 | service_endpoint_t() : oauth_method(oauth_method_default) { } |
24 | service_endpoint_t(const string& u,const string& sm,oauth_method_t om=oauth_method_default) | ||
23 | : url(u), signature_method(sm), oauth_method(om) { } | 25 | : url(u), signature_method(sm), oauth_method(om) { } |
24 | }; | 26 | }; |
25 | 27 | ||
@@ -65,16 +67,20 @@ namespace opkele { | |||
65 | const string get_authorize_url(const token_t& rt,const string& callback=""); | 67 | const string get_authorize_url(const token_t& rt,const string& callback=""); |
66 | token_t get_access_token(const token_t& rt); | 68 | token_t get_access_token(const token_t& rt); |
67 | 69 | ||
68 | void prepare_request( | 70 | http_request_t& prepare_request( |
69 | http_request_t& req, | 71 | http_request_t& req, |
70 | const basic_fields& qf,const basic_fields& pf, | 72 | const basic_fields& qf,const basic_fields& pf, |
71 | oauth_method_t om,const string& sm, | 73 | oauth_method_t om,const string& sm, |
72 | const token_t *t=0,const string& realm=""); | 74 | const token_t *t=0,const string& realm=""); |
73 | void prepare_request( | 75 | http_request_t& prepare_request( |
74 | http_request_t& req, | 76 | http_request_t& req, |
75 | const basic_fields& qf,const basic_fields& pf, | 77 | const basic_fields& qf,const basic_fields& pf, |
76 | const service_endpoint_t& sep, | 78 | const service_endpoint_t& sep, |
77 | const token_t *t=0,const string& realm=""); | 79 | const token_t *t=0,const string& realm=""); |
80 | http_request_t& prepare_request( | ||
81 | http_request_t& req, | ||
82 | const basic_fields& qf,const basic_fields& pf, | ||
83 | const token_t *t=0,const string& realm=""); | ||
78 | 84 | ||
79 | const string signature( | 85 | const string signature( |
80 | const string& method, | 86 | const string& method, |
diff --git a/lib/oauth-consumer.cc b/lib/oauth-consumer.cc index 0c4c9e3..bb4e89b 100644 --- a/lib/oauth-consumer.cc +++ b/lib/oauth-consumer.cc | |||
@@ -156,7 +156,7 @@ namespace opkele { | |||
156 | return rv; | 156 | return rv; |
157 | } | 157 | } |
158 | 158 | ||
159 | void basic_consumer::prepare_request( | 159 | http_request_t& basic_consumer::prepare_request( |
160 | http_request_t& req, | 160 | http_request_t& req, |
161 | const basic_fields& qf,const basic_fields& pf, | 161 | const basic_fields& qf,const basic_fields& pf, |
162 | oauth_method_t om,const string& sm, | 162 | oauth_method_t om,const string& sm, |
@@ -209,19 +209,31 @@ namespace opkele { | |||
209 | }else | 209 | }else |
210 | throw opkele::exception(OPKELE_CP_ /* TODO: specialize */ | 210 | throw opkele::exception(OPKELE_CP_ /* TODO: specialize */ |
211 | "Unknown oauth method"); | 211 | "Unknown oauth method"); |
212 | return req; | ||
212 | } | 213 | } |
213 | 214 | ||
214 | void basic_consumer::prepare_request( | 215 | http_request_t& basic_consumer::prepare_request( |
215 | http_request_t& req, | 216 | http_request_t& req, |
216 | const basic_fields& qf,const basic_fields& pf, | 217 | const basic_fields& qf,const basic_fields& pf, |
217 | const service_endpoint_t& sep, | 218 | const service_endpoint_t& sep, |
218 | const token_t *t,const string& realm) { | 219 | const token_t *t,const string& realm) { |
219 | prepare_request( | 220 | return prepare_request( |
220 | req, qf, pf, | 221 | req, qf, pf, |
221 | sep.oauth_method,sep.signature_method, | 222 | sep.oauth_method,sep.signature_method, |
222 | t,realm); | 223 | t,realm); |
223 | } | 224 | } |
224 | 225 | ||
226 | http_request_t& basic_consumer::prepare_request( | ||
227 | http_request_t& req, | ||
228 | const basic_fields& qf,const basic_fields& pf, | ||
229 | const token_t *t,const string& realm) { | ||
230 | service_endpoint_t sep; | ||
231 | return prepare_request( | ||
232 | req, qf, pf, | ||
233 | get_endpoints().get_url_endpoint(sep,req.url), | ||
234 | t, realm ); | ||
235 | } | ||
236 | |||
225 | void http_request_t::setup_curl(CURL *curl) { | 237 | void http_request_t::setup_curl(CURL *curl) { |
226 | CURLcode r; | 238 | CURLcode r; |
227 | r = curl_easy_setopt(curl,CURLOPT_URL,url.c_str()); | 239 | r = curl_easy_setopt(curl,CURLOPT_URL,url.c_str()); |