UNPKG

fog-controller

Version:

Fog Controller project @ iotracks.com

119 lines (89 loc) 4.29 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _async = require('async'); var _async2 = _interopRequireDefault(_async); var _fogAccessTokenManager = require('../managers/fogAccessTokenManager'); var _fogAccessTokenManager2 = _interopRequireDefault(_fogAccessTokenManager); var _userService = require('./userService'); var _userService2 = _interopRequireDefault(_userService); var _appUtils = require('../utils/appUtils'); var _appUtils2 = _interopRequireDefault(_appUtils); var _constants = require('../constants.js'); var _constants2 = _interopRequireDefault(_constants); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var checkFogTokenExpirationByToken = function checkFogTokenExpirationByToken(props, params, callback) { var time = new Date(), expirationTime = _appUtils2.default.getProperty(params, props.expirationTime); if (expirationTime > time) { callback(null, params); } else { callback('Error', 'AccessToken is Expired'); } }; var findFogAccessTokenByTokenAndFogId = function findFogAccessTokenByTokenAndFogId(props, params, callback) { var token = _appUtils2.default.getProperty(params, props.token), fogId = _appUtils2.default.getProperty(params, props.fogId); _fogAccessTokenManager2.default.getByTokenAndFogId(token, fogId).then(_appUtils2.default.onFind.bind(null, params, props.setProperty, 'Unable to find Fog Access Token', callback)); }; var findFogAccessTokenByToken = function findFogAccessTokenByToken(props, params, callback) { var token = _appUtils2.default.getProperty(params, props.token); _fogAccessTokenManager2.default.getByToken(token).then(_appUtils2.default.onFind.bind(null, params, props.setProperty, 'Unable to find Fog Access Token', callback)); }; var deleteFogAccessTokenByFogId = function deleteFogAccessTokenByFogId(props, params, callback) { var fogId = _appUtils2.default.getProperty(params, props.fogId); _fogAccessTokenManager2.default.deleteByFogId(fogId).then(_appUtils2.default.onDeleteOptional.bind(null, params, callback)); }; var generateAccessToken = function generateAccessToken(params, callback) { var safeToken = false; _async2.default.whilst(function () { return !safeToken; }, function (cb) { params.accessToken = _appUtils2.default.generateAccessToken(); var userProps = { userId: 'accessToken', setProperty: 'userAccessTokenData' }, accessTokenProps = { token: 'accessToken', setProperty: 'fogAccessToken' }; _async2.default.waterfall([_async2.default.apply(_userService2.default.getUserOptional, userProps, params), _async2.default.apply(findFogAccessTokenByToken, accessTokenProps)], function (err, result) { if (!params.userAccessTokenData && !params.fogAccessToken) { safeToken = true; } cb(null, safeToken); }); }, function (err, token) { // CALLBACK var tokenExpiryTime = new Date().getTime() + _constants2.default.ACCESS_TOKEN_EXPIRE_PERIOD * 1000; var tokenData = { accessToken: params.accessToken, expirationTime: tokenExpiryTime }; params.tokenData = tokenData; callback(null, params); }); }; var saveFogAccessToken = function saveFogAccessToken(props, params, callback) { var userId = _appUtils2.default.getProperty(params, props.userId), fogId = _appUtils2.default.getProperty(params, props.fogId), expirationTime = _appUtils2.default.getProperty(params, props.expirationTime), accessToken = _appUtils2.default.getProperty(params, props.accessToken); var config = { userId: userId, expirationTime: expirationTime, token: accessToken, iofog_uuid: fogId }; _fogAccessTokenManager2.default.saveUserToken(config).then(_appUtils2.default.onCreate.bind(null, params, props.setProperty, 'Unable to create Fog Access Token', callback)); }; exports.default = { checkFogTokenExpirationByToken: checkFogTokenExpirationByToken, findFogAccessTokenByToken: findFogAccessTokenByToken, findFogAccessTokenByTokenAndFogId: findFogAccessTokenByTokenAndFogId, deleteFogAccessTokenByFogId: deleteFogAccessTokenByFogId, generateAccessToken: generateAccessToken, saveFogAccessToken: saveFogAccessToken };