From 3b94a77e5ca6c1dae929376e3180348e7047e906 Mon Sep 17 00:00:00 2001 From: ciaranj Date: Thu, 26 Aug 2010 19:28:54 +0100 Subject: [PATCH] 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 :) --- lib/oauth.js | 47 +++++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/lib/oauth.js b/lib/oauth.js index 1d395fd..49c5b50 100644 --- a/lib/oauth.js +++ b/lib/oauth.js @@ -224,27 +224,34 @@ exports.OAuth.prototype._performSecureRequest= function( oauth_token, oauth_toke else path= parsedUrl.pathname; var request = oauthProvider.request(method, path , headers); - var data=""; - var self= this; - request.addListener('response', function (response) { - response.setEncoding('utf8'); - response.addListener('data', function (chunk) { - data+=chunk; + if( callback ) { + var data=""; + var self= this; + request.addListener('response', function (response) { + response.setEncoding('utf8'); + 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); - if( method == "POST" && post_body != null && post_body != "" ) { - request.write(post_body); + request.socket.addListener("error",callback); + if( method == "POST" && post_body != null && 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) { @@ -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) { - 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) { @@ -288,7 +295,7 @@ exports.OAuth.prototype.post= function(url, oauth_token, oauth_token_secret, pos extra_params= 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) {