diff --git a/app.js b/app.js index 24b9ea6384..a3d3d400f5 100755 --- a/app.js +++ b/app.js @@ -6,10 +6,12 @@ var express = require('express'), mongoose = require('mongoose'), passport = require('passport'); -// Configuration (API Keys, Database URI) + +// App Configuration (API Keys, Database URI) var config = require('./config/config.json'); var passportConf = require('./config/passport'); + // Load controllers var home = require('./controllers/home'), user = require('./controllers/user'), @@ -19,6 +21,8 @@ var home = require('./controllers/home'), // Connect to database var db = mongoose.connect(config.db); + + // Initialize express application var app = express(); @@ -55,6 +59,8 @@ app.get('/admin', passportConf.ensureAuthenticated, passportConf.ensureAdmin(), app.get('/partials/:name', home.partials); app.get('/api', api.apiBrowser); +app.get('/api/foursquare', api.foursquare); +app.get('/api/foursquare/callback', api.foursquareCallback); app.get('/contact', contact.getContact); app.post('/contact', contact.postContact); diff --git a/controllers/api.js b/controllers/api.js index c6cfa7c910..54b118051e 100644 --- a/controllers/api.js +++ b/controllers/api.js @@ -1,3 +1,34 @@ +var config = require('../config/config.json'); + +// API PROVIDERS SETUP +var foursquare = require('node-foursquare')({ + secrets: { + clientId: config.foursquare.clientId, + clientSecret: config.foursquare.clientSecret, + redirectUrl: config.foursquare.callbackUrl + } +}); + exports.apiBrowser = function(req, res) { res.render('api'); -}; \ No newline at end of file +}; + +exports.foursquare = function(req, res) { + res.render('api/foursquare', { + title: 'Foursquare API' + }); +}; + +exports.foursquareCallback = function(req, res) { + foursquare.getAccessToken({ + code: req.query.code + }, + function(err, accessToken) { + if (err) { + res.send('An error was thrown: ' + err.message); + } + else { + // Save the accessToken and redirect. + } + }); +}); \ No newline at end of file diff --git a/package.json b/package.json index 7fdf0b6824..215ec7f075 100755 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "passport-facebook": "latest", "passport-google": "latest", "underscore": "latest", - "forever": "latest" + "forever": "latest", + "node-foursquare": "latest" } } \ No newline at end of file diff --git a/views/api/foursquare.jade b/views/api/foursquare.jade new file mode 100644 index 0000000000..6e6bdb2443 --- /dev/null +++ b/views/api/foursquare.jade @@ -0,0 +1,4 @@ +extends ../layout + +block content + h1 Foursquare API \ No newline at end of file