From 46ca60343f188428aca68b07563f7734d5cd4834 Mon Sep 17 00:00:00 2001 From: Stefan Strigler Date: Mon, 25 Jun 2012 15:09:54 +0200 Subject: [PATCH] gracefully detect and handle when user declines authorization --- lib/modules/tumblr.js | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/lib/modules/tumblr.js b/lib/modules/tumblr.js index 52fd7ead..debb0bff 100644 --- a/lib/modules/tumblr.js +++ b/lib/modules/tumblr.js @@ -1,7 +1,8 @@ var oauthModule = require('./oauth') - , Parser = require('xml2js').Parser; + , Parser = require('xml2js').Parser + , url = require('url'); -var twitter = module.exports = +var tumblr = module.exports = oauthModule.submodule('tumblr') .apiHost('http://www.tumblr.com/api') .oauthHost('http://www.tumblr.com') @@ -21,6 +22,20 @@ oauthModule.submodule('tumblr') }); return promise; }) + .authCallbackDidErr( function (req) { + var parsedUrl = url.parse(req.url, true); + return !parsedUrl.query || !parsedUrl.query.oauth_token; + }) + .handleAuthCallbackError( function (req, res) { + if (res.render) { + res.render(__dirname + '/../views/auth-fail.jade', { + errorDescription: 'The user denied your request' + }); + } else { + // TODO Replace this with a nice fallback + throw new Error("You must configure handleAuthCallbackError if you are not using express"); + } + }) .convertErr( function (data) { - return data.data; - }); + return new Error(data.data); + }); \ No newline at end of file