UNPKG

fog-controller

Version:

Fog Controller project @ iotracks.com

142 lines (109 loc) 4.59 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 _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 };