UNPKG

fog-controller

Version:

Fog Controller project @ iotracks.com

127 lines (99 loc) 5.08 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 _fogService = require('../../services/fogService'); var _fogService2 = _interopRequireDefault(_fogService); var _appUtils = require('../../utils/appUtils'); var _appUtils2 = _interopRequireDefault(_appUtils); var _gpsUtils = require('../../utils/gpsUtils'); var _gpsUtils2 = _interopRequireDefault(_gpsUtils); var _winstonLogs = require('../../utils/winstonLogs'); var _winstonLogs2 = _interopRequireDefault(_winstonLogs); var _constants = require('../../constants.js'); var _constants2 = _interopRequireDefault(_constants); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /********************************************* EndPoints ******************************************************/ /********* Instance Configurations EndPoint (Get/Post: /api/v2/instance/config/id/:ID/token/:Token) **********/ var instanceConfigEndPoint = function instanceConfigEndPoint(req, res) { _winstonLogs2.default.info("Endpoint hit: " + req.originalUrl); var params = {}, fogProps = { fogId: 'bodyParams.ID', setProperty: 'fogData' }; params.bodyParams = req.params; _winstonLogs2.default.info("Parameters:" + JSON.stringify(params.bodyParams)); _async2.default.waterfall([_async2.default.apply(_baseApiController2.default.checkUserExistance, req, res), _async2.default.apply(_fogService2.default.getFogInstance, fogProps, params), processConfigData], function (err, result) { _appUtils2.default.sendResponse(res, err, 'config', params.config, result); }); }; /***** Instance Configuration Changes EndPoint (Post: /api/v2/instance/config/changes/id/:ID/token/:Token) ******/ /** * @file instanceConfigController.js * @author Zishan Iqbal * @description This file includes the implementation of instance-config and config-changes end-points */ var instanceConfigChangesEndPoint = function instanceConfigChangesEndPoint(req, res) { _winstonLogs2.default.info("Endpoint hit: " + req.originalUrl); var params = {}; params.bodyParams = req.body; params.bodyParams.instanceId = req.params.ID; _winstonLogs2.default.info("Parameters:" + JSON.stringify(params.bodyParams)); _async2.default.waterfall([_async2.default.apply(_baseApiController2.default.checkUserExistance, req, res), _async2.default.apply(updateFogInstance, params)], function (err, result) { _appUtils2.default.sendResponse(res, err, '', '', result); }); }; /************************************* Extra Functions **************************************************/ var processConfigData = function processConfigData(params, callback) { var config = { networkinterface: params.fogData.networkinterface, dockerurl: params.fogData.dockerurl, disklimit: params.fogData.disklimit.toString(), diskdirectory: params.fogData.diskdirectory, memorylimit: params.fogData.memorylimit.toString(), cpulimit: params.fogData.cpulimit.toString(), loglimit: params.fogData.loglimit.toString(), logdirectory: params.fogData.logdirectory, logfilecount: params.fogData.logfilecount.toString(), poststatusfreq: params.fogData.statusfrequency.toString(), getchangesfreq: params.fogData.changefrequency.toString(), scandevicesfreq: params.fogData.scanfrequency.toString(), isolateddockercontainer: params.fogData.isolateddockercontainer === 1 ? 'on' : 'off', gpscoordinates: params.fogData.latitude + ',' + params.fogData.longitude }; params.config = config; callback(null, params); }; var updateFogInstance = function updateFogInstance(params, callback) { var fogConfigProps = { instanceId: 'bodyParams.instanceId', updatedFog: { networkinterface: params.bodyParams.networkinterface, dockerurl: params.bodyParams.dockerurl, disklimit: params.bodyParams.disklimit, diskdirectory: params.bodyParams.diskdirectory, memorylimit: params.bodyParams.memorylimit, cpulimit: params.bodyParams.cpulimit, loglimit: params.bodyParams.loglimit, logdirectory: params.bodyParams.logdirectory, logfilecount: params.bodyParams.logfilecount, statusfrequency: params.bodyParams.poststatusfreq, changefrequency: params.bodyParams.getchangesfreq, scanfrequency: params.bodyParams.scandevicesfreq, isolatedDockerContainer: params.bodyParams.isolateddockercontainer, gpsmode: params.bodyParams.gpsmode, latitude: _gpsUtils2.default.getGpsCoordinates(params.bodyParams.gpscoordinates).lat, longitude: _gpsUtils2.default.getGpsCoordinates(params.bodyParams.gpscoordinates).lon } }; _fogService2.default.updateFogInstance(fogConfigProps, params, callback); }; exports.default = { instanceConfigEndPoint: instanceConfigEndPoint, instanceConfigChangesEndPoint: instanceConfigChangesEndPoint };