Feeds API endpoint, Twitter feed implemented

This commit is contained in:
Juuso Tapaninen
2015-01-27 23:41:04 +02:00
parent c87b1cad2c
commit 85f61f09af
4 changed files with 49 additions and 0 deletions

29
feeds/twitter.js Normal file
View File

@@ -0,0 +1,29 @@
'use strict';
var Twitter = require('node-twitter');
var config = require('../lib/config');
var Promise = require('bluebird');
var twitterRestClient = new Twitter.RestClient(
config.twitter.consumerKey,
config.twitter.consumerSecret,
config.twitter.token,
config.twitter.tokenSecret
);
module.exports = {
/**
* Fetch five latest tweets / retweets from Twitter
*/
getTweets: function() {
return new Promise(function(resolve, reject) {
twitterRestClient.statusesUserTimeline({count: 5}, function(error, result) {
if (error) {
reject(error);
}
resolve(result);
});
});
}
};

View File

@@ -9,6 +9,7 @@ app.use(bodyParser.urlencoded({extended: true}));
require('./routes/invite')(app);
require('./routes/members')(app);
require('./routes/feeds')(app);
app.use(function(err, req, res, next) {
/*jshint unused:false*/

View File

@@ -19,9 +19,11 @@
"homepage": "https://github.com/koodiklinikka/koodiklinikka.fi-api",
"dependencies": {
"apicache": "0.0.12",
"bluebird": "^2.9.3",
"body-parser": "^1.10.1",
"express": "^4.11.0",
"lodash": "^2.4.1",
"node-twitter": "0.5.2",
"superagent": "^0.21.0",
"validator": "^3.27.0"
}

17
routes/feeds.js Normal file
View File

@@ -0,0 +1,17 @@
'use strict';
var request = require('superagent');
var cache = require('apicache').middleware;
var twitter = require('../feeds/twitter');
module.exports = function (app) {
/*
* GET /feeds
* Endpoint for fetching different information feeds (Twitter, GitHub etc.)
*/
app.get('/feeds', cache('3 hours'), function(req, res, next) {
Promise.all([twitter.getTweets()]).then(function(data) {
res.status(200).send(data);
});
});
};