Possible mechanism for returning a signed request object.

if oauth.get/post is called without a callback parameter it will return
a valid request object that can have custom listeners etc. attached to it.

Don't forget to call 'end' on it :)
This commit is contained in:
ciaranj 2010-08-26 19:28:54 +01:00
parent b79bce508f
commit 3b94a77e5c

View File

@ -224,27 +224,34 @@ exports.OAuth.prototype._performSecureRequest= function( oauth_token, oauth_toke
else path= parsedUrl.pathname; else path= parsedUrl.pathname;
var request = oauthProvider.request(method, path , headers); var request = oauthProvider.request(method, path , headers);
var data=""; if( callback ) {
var self= this; var data="";
request.addListener('response', function (response) { var self= this;
response.setEncoding('utf8'); request.addListener('response', function (response) {
response.addListener('data', function (chunk) { response.setEncoding('utf8');
data+=chunk; response.addListener('data', function (chunk) {
data+=chunk;
});
response.addListener('end', function () {
if( response.statusCode != 200 ) {
callback({ statusCode: response.statusCode, data: data });
} else {
callback(null, data, response);
}
});
}); });
response.addListener('end', function () {
if( response.statusCode != 200 ) {
callback({ statusCode: response.statusCode, data: data });
} else {
callback(null, data, response);
}
});
});
request.socket.addListener("error",callback); request.socket.addListener("error",callback);
if( method == "POST" && post_body != null && post_body != "" ) { if( method == "POST" && post_body != null && post_body != "" ) {
request.write(post_body); request.write(post_body);
}
request.end();
} }
request.end(); else {
return request;
}
return;
} }
exports.OAuth.prototype.getOAuthAccessToken= function(oauth_token, oauth_token_secret, oauth_verifier, callback) { exports.OAuth.prototype.getOAuthAccessToken= function(oauth_token, oauth_token_secret, oauth_verifier, callback) {
@ -274,7 +281,7 @@ exports.OAuth.prototype.getProtectedResource= function(url, method, oauth_token,
} }
exports.OAuth.prototype.get= function(url, oauth_token, oauth_token_secret, callback) { exports.OAuth.prototype.get= function(url, oauth_token, oauth_token_secret, callback) {
this._performSecureRequest( oauth_token, oauth_token_secret, "GET", url, null, "", null, callback ); return this._performSecureRequest( oauth_token, oauth_token_secret, "GET", url, null, "", null, callback );
} }
exports.OAuth.prototype.post= function(url, oauth_token, oauth_token_secret, post_body, post_content_type, callback) { exports.OAuth.prototype.post= function(url, oauth_token, oauth_token_secret, post_body, post_content_type, callback) {
@ -288,7 +295,7 @@ exports.OAuth.prototype.post= function(url, oauth_token, oauth_token_secret, pos
extra_params= post_body; extra_params= post_body;
post_body= querystring.stringify(post_body); post_body= querystring.stringify(post_body);
} }
this._performSecureRequest( oauth_token, oauth_token_secret, "POST", url, extra_params, post_body, post_content_type, callback ); return this._performSecureRequest( oauth_token, oauth_token_secret, "POST", url, extra_params, post_body, post_content_type, callback );
} }
exports.OAuth.prototype.getOAuthRequestToken= function(extraParams, callback) { exports.OAuth.prototype.getOAuthRequestToken= function(extraParams, callback) {