UNPKG

fog-controller

Version:

Fog Controller project @ iotracks.com

82 lines (60 loc) 3.11 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _async = require('async'); var _async2 = _interopRequireDefault(_async); var _winstonLogs = require('../utils/winstonLogs'); var _winstonLogs2 = _interopRequireDefault(_winstonLogs); var _emailActivationCodeManager = require('../managers/emailActivationCodeManager'); var _emailActivationCodeManager2 = _interopRequireDefault(_emailActivationCodeManager); var _appUtils = require('../utils/appUtils'); var _appUtils2 = _interopRequireDefault(_appUtils); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var generateActivationCode = function generateActivationCode(params, callback) { var safeCode = false; _async2.default.whilst(function () { return !safeCode; }, function (cb) { params.newActivationCode = _appUtils2.default.generateRandomString(16); var activationCodeProps = { activationCode: 'newActivationCode', setProperty: 'emailActivationCode' }; _async2.default.waterfall([_async2.default.apply(findEmailActivationCode, activationCodeProps, params)], function (err, result) { if (!params.emailActivationCode) { safeCode = true; } cb(null, safeCode); }); }, function (err, activationCode) { // CALLBACK var activationCodeExpiryTime = new Date().getTime() + 60 * 60 * 24 * 3 * 1000; var activationCodeData = { activationCode: params.newActivationCode, expirationTime: activationCodeExpiryTime }; params.activationCodeData = activationCodeData; callback(null, params); }); }; var findEmailActivationCode = function findEmailActivationCode(props, params, callback) { var activationCode = _appUtils2.default.getProperty(params, props.activationCode); _emailActivationCodeManager2.default.getByActivationCode(activationCode).then(_appUtils2.default.onFindOptional.bind(null, params, props.setProperty, callback)); }; var verifyActivationCode = function verifyActivationCode(props, params, callback) { var activationCode = _appUtils2.default.getProperty(params, props.activationCode); _emailActivationCodeManager2.default.verifyActivationCode(activationCode).then(_appUtils2.default.onFind.bind(null, params, props.setProperty, 'Error: Invalid activation code', callback)); }; var saveActivationCode = function saveActivationCode(props, params, callback) { var userId = _appUtils2.default.getProperty(params, props.userId), activationCode = _appUtils2.default.getProperty(params, props.activationCode), expirationTime = _appUtils2.default.getProperty(params, props.expirationTime); _emailActivationCodeManager2.default.createActivationCode(userId, activationCode, expirationTime).then(_appUtils2.default.onCreate.bind(null, params, props.setProperty, 'Error: Unable to create activation code', callback)); }; exports.default = { generateActivationCode: generateActivationCode, saveActivationCode: saveActivationCode, findEmailActivationCode: findEmailActivationCode, verifyActivationCode: verifyActivationCode };