fog-controller
Version:
Fog Controller project @ iotracks.com
156 lines (121 loc) • 6.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _async = require('async');
var _async2 = _interopRequireDefault(_async);
var _baseApiController = require('./baseApiController');
var _baseApiController2 = _interopRequireDefault(_baseApiController);
var _fogAccessTokenService = require('../../services/fogAccessTokenService');
var _fogAccessTokenService2 = _interopRequireDefault(_fogAccessTokenService);
var _fogProvisionKeyService = require('../../services/fogProvisionKeyService');
var _fogProvisionKeyService2 = _interopRequireDefault(_fogProvisionKeyService);
var _fogService = require('../../services/fogService');
var _fogService2 = _interopRequireDefault(_fogService);
var _fogTypeService = require('../../services/fogTypeService');
var _fogTypeService2 = _interopRequireDefault(_fogTypeService);
var _fogUserService = require('../../services/fogUserService');
var _fogUserService2 = _interopRequireDefault(_fogUserService);
var _userService = require('../../services/userService');
var _userService2 = _interopRequireDefault(_userService);
var _appUtils = require('../../utils/appUtils');
var _appUtils2 = _interopRequireDefault(_appUtils);
var _winstonLogs = require('../../utils/winstonLogs');
var _winstonLogs2 = _interopRequireDefault(_winstonLogs);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/********************************************* EndPoints ******************************************************/
/******* Get Provision Key EndPoint (Get: /api/v2/authoring/fabric/provisionkey/instanceid/:instanceId) ********/
/**
* @file provisionKeyController.js
* @author Zishan Iqbal
* @description This file includes the implementation of the instance-provision key end-point
*/
var getProvisionKeyEndPoint = function getProvisionKeyEndPoint(req, res) {
_winstonLogs2.default.info("Endpoint hit: " + req.originalUrl);
var params = {},
fogProps = {
instanceId: 'bodyParams.instanceId',
setProperty: 'newProvision'
};
params.bodyParams = req.params;
_winstonLogs2.default.info("Parameters:" + JSON.stringify(params.bodyParams));
_async2.default.waterfall([_async2.default.apply(_baseApiController2.default.checkfogExistance, req, res), _async2.default.apply(_fogProvisionKeyService2.default.deleteProvisonKeyByInstanceId, fogProps, params), _async2.default.apply(_fogProvisionKeyService2.default.createProvisonKeyByInstanceId, fogProps), _fogProvisionKeyService2.default.deleteExpiredProvisionKeys], function (err, result) {
var outputProvisionKey = void 0,
outputExpirationTime = void 0,
successLabelArr = void 0,
successValueArr = void 0;
if (params.newProvision) {
outputProvisionKey = params.newProvision.provisionKey;
outputExpirationTime = params.newProvision.expirationTime;
}
successLabelArr = ['provisionKey', 'expirationTime'], successValueArr = [outputProvisionKey, outputExpirationTime];
_appUtils2.default.sendMultipleResponse(res, err, successLabelArr, successValueArr, result);
});
};
/** Fog Provisioning EndPoint (Get/Post: /api/v2/instance/provision/key/:provisionKey/fabrictype/:fabricType) **/
var fogProvisionKeyEndPoint = function fogProvisionKeyEndPoint(req, res) {
_winstonLogs2.default.info("Endpoint hit: " + req.originalUrl);
var params = {},
provisionProps = {
provisionKey: 'bodyParams.provisionKey',
setProperty: 'fogProvision'
},
provisionKeyExpiryProps = {
expirationTime: 'fogProvision.expirationTime'
},
fogProps = {
fogId: 'fogProvision.iofog_uuid',
setProperty: 'fogData'
},
fogTypeProps = {
fogTypeId: 'bodyParams.fabricType',
setProperty: 'fogTypeData'
},
fogUserProps = {
instanceId: 'fogData.uuid',
setProperty: 'fogUser'
},
saveFogAccessTokenProps = {
userId: 'fogUser.user_id',
fogId: 'fogProvision.iofog_uuid',
expirationTime: 'tokenData.expirationTime',
accessToken: 'tokenData.accessToken',
setProperty: 'newAccessToken'
};
params.bodyParams = req.params;
_winstonLogs2.default.info("Parameters:" + JSON.stringify(params.bodyParams));
_async2.default.waterfall([_async2.default.apply(_fogProvisionKeyService2.default.getFogByProvisionKey, provisionProps, params), _async2.default.apply(_fogTypeService2.default.getFogTypeDetail, fogTypeProps), _async2.default.apply(_fogProvisionKeyService2.default.deleteByProvisionKey, provisionProps), _async2.default.apply(_fogProvisionKeyService2.default.checkProvisionKeyExpiry, provisionKeyExpiryProps), _async2.default.apply(_fogService2.default.getFogInstance, fogProps), checkFogType, _async2.default.apply(_fogUserService2.default.getFogUserByInstanceId, fogUserProps), _fogAccessTokenService2.default.generateAccessToken, _async2.default.apply(_fogAccessTokenService2.default.deleteFogAccessTokenByFogId, fogProps), _async2.default.apply(_fogAccessTokenService2.default.saveFogAccessToken, saveFogAccessTokenProps)], function (err, result) {
var successLabelArr = void 0,
successValueArr = void 0;
if (params.fogData && params.newAccessToken) {
successLabelArr = ['id', 'token'], successValueArr = [params.fogData.uuid, params.newAccessToken.token];
}
_appUtils2.default.sendMultipleResponse(res, err, successLabelArr, successValueArr, result);
});
};
var checkFogType = function checkFogType(params, callback) {
if (params.bodyParams.fabricType == params.fogData.typeKey) {
callback(null, params);
} else {
callback('err', 'Provisioning failed - System error: Host architecture is different from selected fog instance.');
}
};
/********* Delete Provision Key EndPoint (Post: /api/v2/authoring/fabric/provisioningkey/list/delete) *********/
var deleteProvisionKeyEndPoint = function deleteProvisionKeyEndPoint(req, res) {
_winstonLogs2.default.info("Endpoint hit: " + req.originalUrl);
var params = {},
instanceProps = {
instanceId: 'bodyParams.instanceId',
setProperty: 'provisionData'
};
params.bodyParams = req.body;
_winstonLogs2.default.info("Parameters:" + JSON.stringify(params.bodyParams));
_async2.default.waterfall([_async2.default.apply(_fogProvisionKeyService2.default.getProvisionKeyByInstanceId, instanceProps, params), _async2.default.apply(_fogProvisionKeyService2.default.deleteProvisonKeyByInstanceId, instanceProps)], function (err, result) {
_appUtils2.default.sendResponse(res, err, 'instanceId', params.bodyParams.instanceId, result);
});
};
exports.default = {
getProvisionKeyEndPoint: getProvisionKeyEndPoint,
fogProvisionKeyEndPoint: fogProvisionKeyEndPoint,
deleteProvisionKeyEndPoint: deleteProvisionKeyEndPoint
};