fog-controller
Version:
Fog Controller project @ iotracks.com
82 lines (60 loc) • 3.11 kB
JavaScript
;
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
};