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