fog-controller
Version:
Fog Controller project @ iotracks.com
127 lines (99 loc) • 5.08 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 _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
};