UNPKG

@golemio/pid

Version:
56 lines 2.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; var _a; Object.defineProperty(exports, "__esModule", { value: true }); const ropid_vymi_1 = require("../../../../../schema-definitions/ropid-vymi"); const integration_engine_1 = require("@golemio/core/dist/integration-engine"); const config_1 = require("@golemio/core/dist/integration-engine/config"); const HTTPFetchProtocolStrategy_1 = require("@golemio/core/dist/integration-engine/datasources/protocol-strategy/HTTPFetchProtocolStrategy"); const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors"); const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator"); const crypto_1 = __importDefault(require("crypto")); const RopidVYMIApiOutputLevel_1 = require("./RopidVYMIApiOutputLevel"); class RopidVYMIApiHelper { constructor() { this.getAllEvents = async () => { try { const events = await this.datasource.getAll(); const digest = this.createDigest(JSON.stringify(events)); return { data: events, digest, }; } catch (err) { integration_engine_1.log.error(err); if (err instanceof golemio_errors_1.AbstractGolemioError) { throw err; } else { throw new golemio_errors_1.GeneralError("Error while getting data", this.constructor.name, err); } } }; this.createDigest = (data) => { return crypto_1.default.createHash("sha1").update(data).digest("hex"); }; this.datasource = new integration_engine_1.DataSource(ropid_vymi_1.RopidVYMI.events.name + "DataSource", new HTTPFetchProtocolStrategy_1.HTTPFetchProtocolStrategy({ headers: config_1.config.datasources.RopidVYMIApiHeaders, method: "GET", timeoutInSeconds: 25, url: `${config_1.config.datasources.RopidVYMIApiUrl}?level=${RopidVYMIApiOutputLevel_1.RopidVYMIApiOutputLevel.Standard}`, responseType: "json", }), new integration_engine_1.JSONDataTypeStrategy({ resultsPath: "vymi-report.vymi-list" }), new golemio_validator_1.JSONSchemaValidator(ropid_vymi_1.RopidVYMI.events.name + "DataSource", ropid_vymi_1.RopidVYMI.events.datasourceJsonSchema)); } } _a = RopidVYMIApiHelper; RopidVYMIApiHelper.getInstance = () => { if (!_a._instance) { _a._instance = new RopidVYMIApiHelper(); } return _a._instance; }; exports.default = RopidVYMIApiHelper; //# sourceMappingURL=RopidVYMIApiHelper.js.map