UNPKG

@golemio/pid

Version:
28 lines 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AlertsGenerator = void 0; const ovapi_gtfs_realtime_bindings_1 = require("@golemio/ovapi-gtfs-realtime-bindings"); const AlertsTransformation_1 = require("../transformations/AlertsTransformation"); class AlertsGenerator { constructor(gtfsRtRedisRepository, vymiEventsRepository, vymiRoutesRepository) { this.gtfsRtRedisRepository = gtfsRtRedisRepository; this.vymiEventsRepository = vymiEventsRepository; this.alertsTransformation = new AlertsTransformation_1.AlertsTransformation(vymiRoutesRepository); } async generateAlerts(feedHeader) { const alertsMessage = ovapi_gtfs_realtime_bindings_1.transit_realtime.FeedMessage.create({ header: feedHeader }); const alertEntities = await this.vymiEventsRepository.getCurrentAlerts(feedHeader.timestamp ? new Date(feedHeader.timestamp * 1000) : new Date()); const transformedAlerts = await this.alertsTransformation.transform(alertEntities); for (const transformedEntity of transformedAlerts) { const feedEntity = ovapi_gtfs_realtime_bindings_1.transit_realtime.FeedEntity.fromObject(transformedEntity); alertsMessage.entity.push(feedEntity); } if (ovapi_gtfs_realtime_bindings_1.transit_realtime.FeedMessage.verify(alertsMessage) === null) { const buffer = ovapi_gtfs_realtime_bindings_1.transit_realtime.FeedMessage.encode(alertsMessage).finish(); await this.gtfsRtRedisRepository.set("alerts" + "_timestamp", alertsMessage.header.timestamp); await this.gtfsRtRedisRepository.hset("alerts.pb", buffer.toString("binary")); } } } exports.AlertsGenerator = AlertsGenerator; //# sourceMappingURL=AlertsGenerator.js.map