UNPKG

domotz-remote-pawn

Version:

Domotz Agent

75 lines (67 loc) 2.7 kB
/** This file is part of Domotz Agent. * Copyright (C) 2021 Domotz Ltd * * Domotz Agent is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Domotz Agent is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Domotz Agent. If not, see <http://www.gnu.org/licenses/>. * * Created by Andrea Azzara <a.azzara@domotz.com> on 15/04/21. * */ function updater(resourceLocator) { var configurator = resourceLocator.configurator; var myConsole = resourceLocator.log.decorateLogs(); function updateConfiguration(requiredConfigVersion, endpoint, callback) { var credentials = resourceLocator.configuration.credentials; if (requiredConfigVersion) { endpoint += '?v=' + requiredConfigVersion; } configurator.setConfigurationUrl(endpoint); configurator .getConfiguration(credentials) .then(configurator.writeConfiguration) .then(resourceLocator.httpOutCache.resetCache) .then(configurator.removeOtherSettingsFiles) .then(resourceLocator.utils.proc.gracefulShutdown) .catch(function (err) { myConsole.warn('Error on updateConfiguration command'); myConsole.error(err.stack); }) .finally(function () { if (callback) { callback(); } }); } function getInitialConfiguration(configurationUrl, callback) { configurator.setConfigurationUrl(configurationUrl); myConsole.info("Get initial configuration from %s", configurationUrl); configurator .getConfiguration() .then(configurator.writeConfiguration) .then(resourceLocator.httpOutCache.resetCache) .then(configurator.removeOtherSettingsFiles) .then(function () { setTimeout(resourceLocator.utils.proc.gracefulShutdown, 1700); }) .finally(function () { if (callback) { callback(); } }); } return { updateConfiguration: updateConfiguration, getInitialConfiguration: getInitialConfiguration, }; } module.exports.init = updater;