From ee7fd0be687553a01be0c463d2d9f0e633b0a489 Mon Sep 17 00:00:00 2001 From: Juuso Tapaninen Date: Mon, 2 Feb 2015 23:11:56 +0200 Subject: [PATCH] Refactored feeds in to services Changed members route to use the GitHub service for data fetching --- routes/feeds.js | 5 ++--- routes/members.js | 21 ++++++--------------- {feeds => services}/github.js | 17 +++++++++++++++++ {feeds => services}/twitter.js | 0 4 files changed, 25 insertions(+), 18 deletions(-) rename {feeds => services}/github.js (56%) rename {feeds => services}/twitter.js (100%) diff --git a/routes/feeds.js b/routes/feeds.js index 596629c..79bcbc9 100644 --- a/routes/feeds.js +++ b/routes/feeds.js @@ -1,10 +1,9 @@ 'use strict'; -var request = require('superagent'); var cache = require('apicache').middleware; var Promise = require('bluebird'); -var twitter = require('../feeds/twitter'); -var github = require('../feeds/github'); +var twitter = require('../services/twitter'); +var github = require('../services/github'); module.exports = function (app) { /* diff --git a/routes/members.js b/routes/members.js index db00112..7b32f42 100644 --- a/routes/members.js +++ b/routes/members.js @@ -1,28 +1,19 @@ 'use strict'; -var request = require('superagent'); +var github = require('../services/github'); var cache = require('apicache').middleware; -var config = require('../lib/config'); - module.exports = function (app) { /* * POST /members - * Endpoint for fetching GitHub org members + * Endpoint for fetching GitHub org public members */ app.get('/members', cache('3 hours'), function(req, res, next) { - request - .get('https://api.github.com/orgs/koodiklinikka/public_members') - .set('Authorization', 'token ' + config.github.token) - .end(function(error, response){ - if(error) { - return next(error); - } - req.apicacheGroup = response.body; - res.status(200).send(response.body); + github.getMembers().then(function(data) { + res.status(200).send(data); + }, function(error) { + next(error); }); - }); - }; diff --git a/feeds/github.js b/services/github.js similarity index 56% rename from feeds/github.js rename to services/github.js index 364430a..cc7c6d2 100644 --- a/feeds/github.js +++ b/services/github.js @@ -18,6 +18,23 @@ module.exports = { reject(error); } + resolve(response.body); + }); + }); + }, + /** + * Fetch all the public members of the GitHub organization + */ + getMembers: function() { + return new Promise(function(resolve, reject) { + request + .get('https://api.github.com/orgs/koodiklinikka/public_members') + .set('Authorization', 'token ' + config.github.token) + .end(function(error, response){ + if (error) { + reject(error); + } + resolve(response.body); }); }); diff --git a/feeds/twitter.js b/services/twitter.js similarity index 100% rename from feeds/twitter.js rename to services/twitter.js