UNPKG

@golemio/parkings

Version:
67 lines 4.03 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.RefreshDataInDbTask = void 0; const helpers_1 = require("@golemio/core/dist/helpers"); const integration_engine_1 = require("@golemio/core/dist/integration-engine"); const ParkomatSchema_1 = require("../schemas/ParkomatSchema"); const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe"); const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken"); const ParkomatsTransformation_1 = require("../../transformations/ParkomatsTransformation"); const ParkomatsRepository_1 = require("../../repositories/ParkomatsRepository"); const ParkomatsDataSource_1 = require("../../datasources/parkomats/ParkomatsDataSource"); const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken"); const _sch_1 = require("../../../schema-definitions"); let RefreshDataInDbTask = exports.RefreshDataInDbTask = class RefreshDataInDbTask extends integration_engine_1.AbstractTask { constructor(model, transformation, dataSource, log) { super(_sch_1.Parkomats.name.toLowerCase()); this.model = model; this.transformation = transformation; this.dataSource = dataSource; this.log = log; this.queueName = "refreshDataInDB"; this.queueTtl = 59 * 60 * 1000; // 59 minutes this.schema = ParkomatSchema_1.IParkomatValidationSchema; this.execute = async (msg) => { let from; let to; if (msg.from && msg.to) { from = (0, helpers_1.dateTime)(new Date(msg.from), { timeZone: "Europe/Prague" }); to = (0, helpers_1.dateTime)(new Date(msg.to), { timeZone: "Europe/Prague" }); this.log.debug(`Interval from: ${from} to ${to} was used.`); } else { const now = new Date(); now.setHours(4, 0, 0, 0); to = (0, helpers_1.dateTime)(now).setTimeZone("Europe/Prague"); from = to.clone(); from.subtract(28, "hours"); } const data = await this.dataSource.getParkomats("from=" + from.format("yyyy-LL-dd'T'HH:mm:ss") + `&to=${to.format("yyyy-LL-dd'T'HH:mm:ss")}`); const transformedData = await this.transformation.transform(data); await this.model.bulkSave(transformedData); }; } }; exports.RefreshDataInDbTask = RefreshDataInDbTask = __decorate([ (0, tsyringe_1.injectable)(), __param(0, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ParkomatsRepository)), __param(1, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ParkomatsTransformation)), __param(2, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ParkomatsDataSource)), __param(3, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)), __metadata("design:paramtypes", [ParkomatsRepository_1.ParkomatsRepository, ParkomatsTransformation_1.ParkomatsTransformation, ParkomatsDataSource_1.ParkomatsDataSource, Object]) ], RefreshDataInDbTask); //# sourceMappingURL=RefreshDataInDbTask.js.map