fog-controller
Version:
Fog Controller project @ iotracks.com
142 lines (109 loc) • 4.59 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 _changeTrackingService = require('../../services/changeTrackingService');
var _changeTrackingService2 = _interopRequireDefault(_changeTrackingService);
var _fogService = require('../../services/fogService');
var _fogService2 = _interopRequireDefault(_fogService);
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 ********************************************************/
/** Check Change Tracking Changes EndPoint (Get/Post: /api/v2/instance/changes/id/:ID/token/:Token/timestamp/:TimeStamp) **/
/**
* @file instanceChangesController.js
* @author Zishan Iqbal
* @description This file includes the implementation of the instance-changes end-point
*/
var getChangeTrackingChangesEndPoint = function getChangeTrackingChangesEndPoint(req, res) {
_winstonLogs2.default.info("Endpoint hit: " + req.originalUrl);
var params = {},
instanceProps = {
instanceId: 'bodyParams.ID',
setProperty: 'changeTrackingData'
};
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(_changeTrackingService2.default.getChangeTrackingByInstanceId, instanceProps, params), processChangeTrackingChanges, updateFogInstance], function (err, result) {
_appUtils2.default.sendResponse(res, err, 'changes', params.changes, result);
});
};
/************************************* Extra Functions **************************************************/
var processChangeTrackingChanges = function processChangeTrackingChanges(params, callback) {
if (params.changeTrackingData) {
if (params.bodyParams.TimeStamp.length < 1) {
params.bodyParams.TimeStamp = 0;
}
var changes = {
config: false,
version: false,
reboot: false,
containerlist: false,
containerconfig: false,
routing: false,
registries: false,
proxy: false,
diagnostics: false
};
if (params.changeTrackingData.config > params.bodyParams.TimeStamp) {
changes.config = true;
}
if (params.changeTrackingData.version > params.bodyParams.TimeStamp) {
changes.version = true;
}
if (params.changeTrackingData.reboot) {
changes.reboot = true;
_async2.default.waterfall([_async2.default.apply(updateChangeTracking, params)], function (err, result) {});
}
if (params.changeTrackingData.containerList > params.bodyParams.TimeStamp) {
changes.containerlist = true;
}
if (params.changeTrackingData.containerConfig > params.bodyParams.TimeStamp) {
changes.containerconfig = true;
}
if (params.changeTrackingData.routing > params.bodyParams.TimeStamp) {
changes.routing = true;
}
if (params.changeTrackingData.registries > params.bodyParams.TimeStamp) {
changes.registries = true;
}
if (params.changeTrackingData.proxy > params.bodyParams.TimeStamp) {
changes.proxy = true;
}
if (params.changeTrackingData.diagnostics > params.bodyParams.TimeStamp) {
changes.diagnostics = true;
}
params.changes = changes;
callback(null, params);
} else {
callback('Error', 'Error: Cannot find changeTracking data of current iofog instance.');
}
};
var updateChangeTracking = function updateChangeTracking(params, callback) {
var changeTrackingProps = {
fogInstanceId: 'bodyParams.ID',
changeObject: {
reboot: false
}
};
_changeTrackingService2.default.updateChangeTracking(changeTrackingProps, params, callback);
};
var updateFogInstance = function updateFogInstance(params, callback) {
var fogInstanceProps = {
instanceId: 'bodyParams.ID',
updatedFog: {
lastactive: new Date().getTime()
}
};
_fogService2.default.updateFogInstance(fogInstanceProps, params, callback);
};
exports.default = {
getChangeTrackingChangesEndPoint: getChangeTrackingChangesEndPoint
};