UNPKG

vulcain-corejs

Version:
60 lines (58 loc) 3.15 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments)).next()); }); }; const system_1 = require('./../globals/system'); const configurationSource_1 = require('./configurationSource'); var rest = require('unirest'); var moment = require('moment'); class VulcainConfigurationSource { constructor(uri, options) { this.uri = uri; this.options = options; if (!system_1.System.vulcainToken && !system_1.System.isTestEnvironnment) { system_1.System.log.info(null, "No token defined for reading configuration properties. Vulcain configuration source is ignored."); } } pollPropertiesAsync(timeoutInMs) { return __awaiter(this, void 0, void 0, function* () { if (!system_1.System.vulcainToken && !system_1.System.isTestEnvironnment) { return Promise.resolve(null); } let self = this; return new Promise((resolve, reject) => { let uri = this.uri + "?$query=" + JSON.stringify(this.options); let values = new Map(); let request = rest.get(uri) .headers({ 'Accept': 'application/json' }) .timeout(timeoutInMs); if (system_1.System.vulcainToken) request = request.headers({ Authorization: 'ApiKey ' + system_1.System.vulcainToken }); request.end(function (response) { if (response.status === 200 && response.body) { if (response.body.error) { system_1.System.log.info(null, `HTTP CONFIG : error when polling properties on ${uri} - ${response.body.error.message}`); } else { let data = response.body; data.value && data.value.forEach(cfg => values.set(cfg.key, cfg)); self.options.lastUpdate = moment.utc().format(); system_1.System.log.verbose(null, `HTTP CONFIG : polling properties on ${uri}`); } } else { system_1.System.log.info(null, `HTTP CONFIG : error when polling properties on ${uri} - ${(response.error && response.error.message) || response.status}`); } resolve(new configurationSource_1.PollResult(self, values)); }); }); }); } } exports.VulcainConfigurationSource = VulcainConfigurationSource; //# sourceMappingURL=vulcainConfigurationSource.js.map