From 7b4549b3684a14a1c68eb10456def78ab96c89e0 Mon Sep 17 00:00:00 2001 From: Sahat Yalkabov Date: Sun, 8 Dec 2013 03:58:56 -0500 Subject: [PATCH] Refactoring --- app.js | 6 ++--- config/passport.js | 12 --------- controllers/api.js | 65 +++++++++++++--------------------------------- 3 files changed, 21 insertions(+), 62 deletions(-) diff --git a/app.js b/app.js index 7ce3650a85..b312730c9a 100755 --- a/app.js +++ b/app.js @@ -61,11 +61,11 @@ app.post('/account/settings', passportConf.isAuthenticated, user.postAccountSett app.get('/partials/:name', home.partials); app.get('/api', api.getApi); -app.get('/api/foursquare', passportConf.isAuthenticated, passportConf.isAuthorized('foursquare'), api.getFoursquare); -app.get('/api/tumblr', passportConf.isAuthenticated, passportConf.isAuthorized('foursquare'), api.getTumblr); +app.get('/api/foursquare', passportConf.isAuthenticated, api.getFoursquare); +app.get('/api/tumblr', passportConf.isAuthenticated, api.getTumblr); app.get('/api/facebook', passportConf.isAuthenticated, api.getFacebook); app.get('/api/scraping', api.getScraping); -app.get('/api/github', passportConf.isAuthorized('github'), api.getGithub); +app.get('/api/github', api.getGithub); app.get('/api/lastfm', api.getLastfm); app.get('/api/nyt', api.getNewYorkTimes); app.get('/api/twilio', api.getTwilio); diff --git a/config/passport.js b/config/passport.js index 5607519565..acbe0ee957 100755 --- a/config/passport.js +++ b/config/passport.js @@ -138,15 +138,3 @@ exports.isAuthenticated = function(req, res, next) { if (req.isAuthenticated()) return next(); res.redirect('/login'); }; - -exports.isAuthorized = function(provider) { - return function(req, res, next) { - var accessToken = _.findWhere(req.user.tokens, { kind: provider }); - if (accessToken) return next(); - res.render('api/unauthorized', { - title: provider + ' API', - provider: provider, - user: req.user - }); - }; -}; \ No newline at end of file diff --git a/controllers/api.js b/controllers/api.js index 2150bc9c70..31ad6268bb 100644 --- a/controllers/api.js +++ b/controllers/api.js @@ -24,30 +24,24 @@ exports.getApi = function(req, res) { * GET /api/foursquare */ exports.getFoursquare = function(req, res) { - var token = _.findWhere(req.user.tokens, { kind: 'foursquare' }); - if (!token) { - return res.render('api/unauthorized', { - title: 'Foursquare API', - provider: 'Foursquare', - user: req.user - }); - } + var foursquareToken = _.findWhere(req.user.tokens, { kind: 'foursquare' }); + if (!foursquareToken) return res.redirect('/auth/foursquare'); async.parallel({ trendingVenues: function(callback) { var geo = geoip.lookup('4.17.136.0'); var lat = geo.ll[0]; var lon = geo.ll[1]; - foursquare.Venues.getTrending(lat, lon, { limit: 50 }, token.token, function(err, results) { + foursquare.Venues.getTrending(lat, lon, { limit: 50 }, foursquareToken.token, function(err, results) { callback(err, results); }); }, venueDetail: function(callback) { - foursquare.Venues.getVenue('49da74aef964a5208b5e1fe3', token.token, function(err, results) { + foursquare.Venues.getVenue('49da74aef964a5208b5e1fe3', foursquareToken.token, function(err, results) { callback(err, results); }); }, userCheckins: function(callback) { - foursquare.Users.getCheckins('self', null, token.token, function(err, results) { + foursquare.Users.getCheckins('self', null, foursquareToken.token, function(err, results) { callback(err, results); }); } @@ -67,23 +61,14 @@ exports.getFoursquare = function(req, res) { * GET /api/tumblr */ exports.getTumblr = function(req, res) { - var token = _.findWhere(req.user.tokens, { kind: 'tumblr' }); - // TODO: MIDDLEWARE - if (!token) { - return res.render('api/unauthorized', { - title: 'Tumblr API', - provider: 'Tumblr', - user: req.user - }); - } - + var tumblrToken = _.findWhere(req.user.tokens, { kind: 'tumblr' }); + if (!tumblrToken) return res.redirect('/auth/tumblr'); var client = tumblr.createClient({ consumer_key: config.tumblr.consumerKey, consumer_secret: config.tumblr.consumerSecret, - token: token.token, - token_secret: token.tokenSecret + token: tumblrToken.token, + token_secret: tumblrToken.tokenSecret }); - client.posts('goddess-of-imaginary-light.tumblr.com', { type: 'photo' }, function(err, data) { res.render('api/tumblr', { title: 'Tumblr API', @@ -98,17 +83,9 @@ exports.getTumblr = function(req, res) { * GET /api/facebook */ exports.getFacebook = function(req, res) { - var token = _.findWhere(req.user.tokens, { kind: 'facebook' }); - // TODO: MIDDLEWARE - // TODO: OR just redirect directly to /auth/facebook - if (!token) { - return res.render('api/unauthorized', { - title: 'Facebook API', - provider: 'Facebook', - user: req.user - }); - } - graph.setAccessToken(token.token); + var facebookToken = _.findWhere(req.user.tokens, { kind: 'facebook' }); + if (!facebookToken) return res.redirect('/auth/facebook'); + graph.setAccessToken(facebookToken.token); async.parallel({ getMe: function(done) { graph.get(req.user.facebook, function(err, me) { @@ -129,9 +106,6 @@ exports.getFacebook = function(req, res) { user: req.user }); }); - - - }; exports.getScraping = function(req, res) { @@ -150,16 +124,10 @@ exports.getScraping = function(req, res) { }; exports.getGithub = function(req, res) { - var token = _.findWhere(req.user.tokens, { kind: 'github' }); - if (!token) { - return res.render('api/unauthorized', { - title: 'GitHub API', - provider: 'GitHub', - user: req.user - }); - } + var githubToken = _.findWhere(req.user.tokens, { kind: 'github' }); + if (!githubToken) return res.redirect('/auth/github'); // TODO: Fix rate limit on passport-github token - var github = new Github({ token: token.token }); + var github = new Github({ token: githubToken.token }); var repo = github.getRepo('sahat', 'requirejs-library'); repo.show(function(err, repo) { res.render('api/github', { @@ -171,6 +139,9 @@ exports.getGithub = function(req, res) { }; +/** + * GET /api/twilio + */ exports.getTwilio = function(req, res) { };