UNPKG

fog-controller

Version:

Fog Controller project @ iotracks.com

156 lines (121 loc) 6.75 kB
'use strict'; 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 };