Add venmo recent payments

This commit is contained in:
Sahat Yalkabov
2014-02-11 08:04:20 -05:00
parent f0b5ad7bf0
commit 241baf179a
2 changed files with 67 additions and 37 deletions

View File

@ -347,41 +347,41 @@ exports.getSteam = function(req, res, next) {
var query = { l: 'english', steamid: steamId, key: secrets.steam.apiKey }; var query = { l: 'english', steamid: steamId, key: secrets.steam.apiKey };
async.parallel({ async.parallel({
playerAchievements: function(done) { playerAchievements: function(done) {
query.appid = '49520'; query.appid = '49520';
var qs = querystring.stringify(query); var qs = querystring.stringify(query);
request.get({ url: 'http://api.steampowered.com/ISteamUserStats/GetPlayerAchievements/v0001/?' + qs, json: true }, function(error, request, body) { request.get({ url: 'http://api.steampowered.com/ISteamUserStats/GetPlayerAchievements/v0001/?' + qs, json: true }, function(error, request, body) {
if (request.statusCode === 401) return done(new Error('Missing or Invalid Steam API Key')); if (request.statusCode === 401) return done(new Error('Missing or Invalid Steam API Key'));
done(error, body); done(error, body);
}); });
},
playerSummaries: function(done) {
query.steamids = steamId;
var qs = querystring.stringify(query);
request.get({ url: 'http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?' + qs, json: true }, function(error, request, body) {
if (request.statusCode === 401) return done(new Error('Missing or Invalid Steam API Key'));
done(error, body);
});
},
ownedGames: function(done) {
query.include_appinfo = 1;
query.include_played_free_games = 1;
var qs = querystring.stringify(query);
request.get({ url: 'http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?' + qs, json: true }, function(error, request, body) {
if (request.statusCode === 401) return done(new Error('Missing or Invalid Steam API Key'));
done(error, body);
});
}
}, },
playerSummaries: function(done) { function(err, results) {
query.steamids = steamId; if (err) return next(err);
var qs = querystring.stringify(query);
request.get({ url: 'http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?' + qs, json: true }, function(error, request, body) {
if (request.statusCode === 401) return done(new Error('Missing or Invalid Steam API Key'));
done(error, body);
});
},
ownedGames: function(done) {
query.include_appinfo = 1;
query.include_played_free_games = 1;
var qs = querystring.stringify(query);
request.get({ url: 'http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?' + qs, json: true }, function(error, request, body) {
if (request.statusCode === 401) return done(new Error('Missing or Invalid Steam API Key'));
done(error, body);
});
}
},
function(err, results) {
if (err) return next(err);
res.render('api/steam', { res.render('api/steam', {
title: 'Steam Web API', title: 'Steam Web API',
ownedGames: results.ownedGames.response.games, ownedGames: results.ownedGames.response.games,
playerAchievemments: results.playerAchievements.playerstats, playerAchievemments: results.playerAchievements.playerstats,
playerSummary: results.playerSummaries.response.players[0] playerSummary: results.playerSummaries.response.players[0]
});
}); });
});
}; };
/** /**
@ -419,13 +419,24 @@ exports.getVenmo = function(req, res, next) {
var token = _.findWhere(req.user.tokens, { kind: 'venmo' }); var token = _.findWhere(req.user.tokens, { kind: 'venmo' });
var query = querystring.stringify({ access_token: token.accessToken }); var query = querystring.stringify({ access_token: token.accessToken });
// Get profile information async.parallel({
request.get({ url: 'https://api.venmo.com/v1/me?' + query, json: true }, function(err, request, body) { getProfile: function(done) {
request.get({ url: 'https://api.venmo.com/v1/me?' + query, json: true }, function(err, request, body) {
done(err, body);
});
},
getRecentPayments: function(done) {
request.get({ url: 'https://api.venmo.com/v1/payments?' + query, json: true }, function(err, request, body) {
done(err, body);
});
}
},
function(err, results) {
if (err) return next(err); if (err) return next(err);
res.render('api/venmo', { res.render('api/venmo', {
title: 'Venmo API', title: 'Venmo API',
profile: body.data profile: results.getProfile.data,
recentPayments: results.getRecentPayments.data
}); });
}); });
}; };

View File

@ -61,4 +61,23 @@ block content
br br
h3 Recent Payments h3 Recent Payments
table.table.table-striped.table-bordered
thead
tr
th To
th Amount
th Status
th Date
th Note
tbody
if recentPayments.length
for payment in recentPayments
tr
td= payment.target.phone || payment.target.email
td= payment.amount
td= payment.status
td= payment.date_created
td= payment.note
else
tr
td(colspan=5) No recent payments.