diff --git a/app.js b/app.js index 2c9325a6c4..68de2a5e6d 100755 --- a/app.js +++ b/app.js @@ -150,6 +150,7 @@ app.get('/api/venmo', passportConf.isAuthenticated, passportConf.isAuthorized, a app.post('/api/venmo', passportConf.isAuthenticated, passportConf.isAuthorized, apiController.postVenmo); app.get('/api/linkedin', passportConf.isAuthenticated, passportConf.isAuthorized, apiController.getLinkedin); app.get('/api/instagram', passportConf.isAuthenticated, passportConf.isAuthorized, apiController.getInstagram); +app.get('/api/yahoo', apiController.getYahoo); /** * OAuth routes for sign-in. diff --git a/controllers/api.js b/controllers/api.js index 908c5031da..27f381f101 100644 --- a/controllers/api.js +++ b/controllers/api.js @@ -5,7 +5,6 @@ var validator = require('validator'); var async = require('async'); var cheerio = require('cheerio'); var request = require('request'); -var _ = require('underscore'); var graph = require('fbgraph'); var LastFmNode = require('lastfm').LastFmNode; var tumblr = require('tumblr.js'); @@ -17,6 +16,8 @@ var twilio = require('twilio')(secrets.twilio.sid, secrets.twilio.token); var Linkedin = require('node-linkedin')(secrets.linkedin.clientID, secrets.linkedin.clientSecret, secrets.linkedin.callbackURL); var clockwork = require('clockwork')({key: secrets.clockwork.apiKey}); var ig = require('instagram-node').instagram(); +var Y = require('yui/yql'); +var _ = require('underscore'); /** * GET /api @@ -544,4 +545,20 @@ exports.getInstagram = function(req, res, next) { myRecentMedia: results.myRecentMedia }); }); +}; + +/** + * GET /api/yahoo + * Yahoo API example. + */ +exports.getYahoo = function(req, res) { + Y.YQL('SELECT * FROM weather.forecast WHERE (location = 10007)', function(response) { + var location = response.query.results.channel.location; + var condition = response.query.results.channel.item.condition; + res.render('api/yahoo', { + title: 'Yahoo API', + location: location, + condition: condition + }); + }); }; \ No newline at end of file diff --git a/package.json b/package.json index ff8b73f0ab..4c84e83181 100755 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "uglify-js": "^2.4.13", "underscore": "^1.6.0", "validator": "^3.11.0", + "yui": "^3.17.0-rc-1" }, "devDependencies": { "chai": "^1.9.1", diff --git a/views/api/yahoo.jade b/views/api/yahoo.jade new file mode 100644 index 0000000000..e3e3efa523 --- /dev/null +++ b/views/api/yahoo.jade @@ -0,0 +1,30 @@ +extends ../layout + +block content + .page-header + h2 + i.fa.fa-umbrella + | Yahoo API + .btn-group.btn-group-justified + a.btn.btn-primary(href='http://instagram.com/developer/', target='_blank') + i.fa.fa-check-square-o + | YQL Getting Started + a.btn.btn-primary(href='https://developer.yahoo.com/yql/', target='_blank') + i.fa.fa-laptop + | YUI on Node.js + a.btn.btn-primary(href='https://developer.yahoo.com/everything.html', target='_blank') + i.fa.fa-code + | Yahoo APIs + + br + p.lead Weather for ZIP Code: + strong 07011 + .alert.alert-info + p It is currently + strong #{condition.temp} + | degrees in + strong #{location.city}, #{location.region} + | . + + h3 YQL Query + pre SELECT * FROM weather.forecast WHERE (location = 10007) \ No newline at end of file