cached endpoint for fetching users

This commit is contained in:
Riku Rouvila
2015-01-26 22:49:12 +02:00
parent 30e1d4948b
commit c87b1cad2c
3 changed files with 32 additions and 1 deletions

View File

@@ -8,11 +8,13 @@ app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
require('./routes/invite')(app);
require('./routes/members')(app);
app.use(function(err, req, res, next) {
/*jshint unused:false*/
console.error(err.message);
console.error(err.stack);
res.status(500).send('Internal server error');
});
app.listen(9000);
app.listen(process.env.PORT || 9000);

View File

@@ -18,6 +18,7 @@
},
"homepage": "https://github.com/koodiklinikka/koodiklinikka.fi-api",
"dependencies": {
"apicache": "0.0.12",
"body-parser": "^1.10.1",
"express": "^4.11.0",
"lodash": "^2.4.1",

28
routes/members.js Normal file
View File

@@ -0,0 +1,28 @@
'use strict';
var request = require('superagent');
var cache = require('apicache').middleware;
var config = require('../lib/config');
module.exports = function (app) {
/*
* POST /members
* Endpoint for fetching GitHub org 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);
});
});
};