Skip to content

Commit

Permalink
Move functions from init.js to init/
Browse files Browse the repository at this point in the history
  • Loading branch information
Quentin01 committed Jul 7, 2014
1 parent 8e25c1d commit aaad306
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 47 deletions.
47 changes: 3 additions & 44 deletions lib/handlers/init.js → lib/handlers/init/callback.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,49 +9,8 @@ var Anyfetch = require('anyfetch');
var async = require('async');
var restify = require('restify');

var TempToken = require('../models/temp-token.js');
var Token = require('../models/token.js');

/**
* This handler starts providing a new account onto AnyFetch.
* We check the request is valid, create a new tempToken and call the handler for new account.
* The tempToken is then saved.
*
* @param {Object} req Request object from the client
* @param {Object} res Response we want to return
* @param {Function} next Callback to call once res has been populated.
*/
module.exports.connect = function(redirectToService, config) {
return function (req, res, next) {
if(!req.params.code) {
return next(new restify.MissingParameterError("Missing code parameter."));
}

// Hold temporary state
var tempToken = new TempToken({
anyfetchCode: req.params.code,
returnTo: (req.params.returnTo) ? req.params.returnTo : "https://manager.anyfetch.com"
});

redirectToService(config.providerUrl + '/init/callback?code=' + req.params.code, function(err, redirectUrl, preData) {
if(err) {
return next(err);
}

tempToken.data = preData;
tempToken.save(function(err) {
if(err) {
return next(err);
}

res.send(302, null, {
Location: redirectUrl
});
next();
});
});
};
};
var TempToken = require('../../models/temp-token.js');
var Token = require('../../models/token.js');

/**
* The user is redirected to this handler after getting access to his provider.
Expand All @@ -60,7 +19,7 @@ module.exports.connect = function(redirectToService, config) {
* @param {Object} res Response we want to return
* @param {Function} next Callback to call once res has been populated.
*/
exports.callback = function(retrieveTokens, config) {
module.exports = function(retrieveTokens, config) {
return function (req, res, next) {
if(!req.params.code) {
return next(new restify.MissingParameterError("Missing code parameter."));
Expand Down
51 changes: 51 additions & 0 deletions lib/handlers/init/connect.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
'use strict';
/**
* @file Define initial handlers,
*
* Trade grant_tokens for access_tokens.
*
*/
var restify = require('restify');

var TempToken = require('../../models/temp-token.js');

/**
* This handler starts providing a new account onto AnyFetch.
* We check the request is valid, create a new tempToken and call the handler for new account.
* The tempToken is then saved.
*
* @param {Object} req Request object from the client
* @param {Object} res Response we want to return
* @param {Function} next Callback to call once res has been populated.
*/
module.exports = function(redirectToService, config) {
return function (req, res, next) {
if(!req.params.code) {
return next(new restify.MissingParameterError("Missing code parameter."));
}

// Hold temporary state
var tempToken = new TempToken({
anyfetchCode: req.params.code,
returnTo: (req.params.returnTo) ? req.params.returnTo : "https://manager.anyfetch.com"
});

redirectToService(config.providerUrl + '/init/callback?code=' + req.params.code, function(err, redirectUrl, preData) {
if(err) {
return next(err);
}

tempToken.data = preData;
tempToken.save(function(err) {
if(err) {
return next(err);
}

res.send(302, null, {
Location: redirectUrl
});
next();
});
});
};
};
7 changes: 4 additions & 3 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ module.exports.createServer = function createServer(connectFunctions, updateAcco

// Load endpoints generators
var indexEndpoint = require('./handlers/index.js');
var initEndpoints = require('./handlers/init.js');
var initConnectEndpoints = require('./handlers/init/connect.js');
var initCallbackEndpoints = require('./handlers/init/callback.js');
var updateEndpoint = require('./handlers/update.js');
var statusEndpoint = require('./handlers/status.js');
var resetEndpoint = require('./handlers/reset.js');
Expand Down Expand Up @@ -112,8 +113,8 @@ module.exports.createServer = function createServer(connectFunctions, updateAcco

// Load routes and generate endpoints using closures
server.get('/', indexEndpoint);
server.get('/init/connect', initEndpoints.connect(connectFunctions.redirectToService, config));
server.get('/init/callback', initEndpoints.callback(connectFunctions.retrieveTokens, config));
server.get('/init/connect', initConnectEndpoints(connectFunctions.redirectToService, config));
server.get('/init/callback', initCallbackEndpoints(connectFunctions.retrieveTokens, config));

server.post('/update', updateEndpoint(updateAccount, server.queue, workers));

Expand Down

0 comments on commit aaad306

Please sign in to comment.