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