@golemio/pid 2.12.10-dev.1266077057 → 2.12.10-dev.1267735301
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/db/example/15_vehicle_descriptors.sql +3 -3
- package/db/example/redis/publicDepartureBoardsMock.json +13 -0
- package/db/example/redis/publicVehiclePositionsMock.json +24 -0
- package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.d.ts +4 -3
- package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.js +8 -6
- package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.d.ts +14 -0
- package/dist/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.js +82 -0
- package/dist/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.d.ts +10 -2
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js +81 -10
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/interfaces/IPublicDepartureDto.d.ts +12 -0
- package/dist/integration-engine/ropid-gtfs/interfaces/IPublicDepartureDto.js +3 -0
- package/dist/integration-engine/ropid-gtfs/interfaces/IPublicDepartureDto.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/ioc/Di.js +10 -0
- package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +4 -0
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +4 -0
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.d.ts +7 -0
- package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.js +36 -0
- package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.d.ts +2 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js +9 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/constants.d.ts +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/constants.js +5 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/constants.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js +4 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask.d.ts +21 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask.js +102 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.d.ts +3 -2
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.js +9 -7
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/IRefreshPublicDepartureParams.d.ts +4 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/IRefreshPublicDepartureParams.js +3 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/IRefreshPublicDepartureParams.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/RefreshPublicDepartureSchema.d.ts +5 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/RefreshPublicDepartureSchema.js +31 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/RefreshPublicDepartureSchema.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicApiCacheRepository.js +6 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicApiCacheRepository.js.map +1 -1
- package/dist/output-gateway/index.js.map +1 -1
- package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js +2 -1
- package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js.map +1 -1
- package/dist/output-gateway/public/controllers/v1/PublicDepartureBoardsController.d.ts +8 -0
- package/dist/output-gateway/public/controllers/v1/PublicDepartureBoardsController.js +60 -0
- package/dist/output-gateway/public/controllers/v1/PublicDepartureBoardsController.js.map +1 -0
- package/dist/output-gateway/public/controllers/v1/interfaces/PublicParamsInterfaces.d.ts +10 -0
- package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.d.ts +11 -0
- package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.js +72 -0
- package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.js.map +1 -0
- package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.d.ts +1 -0
- package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.js +22 -2
- package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.js.map +1 -1
- package/dist/output-gateway/public/domain/IPublicDepartureTransformInputDto.d.ts +9 -0
- package/dist/output-gateway/public/domain/IPublicDepartureTransformInputDto.js +3 -0
- package/dist/output-gateway/public/domain/IPublicDepartureTransformInputDto.js.map +1 -0
- package/dist/output-gateway/public/domain/PublicApiDepartureInterfaces.d.ts +34 -0
- package/dist/output-gateway/public/domain/PublicApiDepartureInterfaces.js +3 -0
- package/dist/output-gateway/public/domain/PublicApiDepartureInterfaces.js.map +1 -0
- package/dist/output-gateway/public/domain/repository/IGtfsDepartureRepository.d.ts +4 -0
- package/dist/output-gateway/public/domain/repository/IGtfsDepartureRepository.js +3 -0
- package/dist/output-gateway/public/domain/repository/IGtfsDepartureRepository.js.map +1 -0
- package/dist/output-gateway/public/domain/repository/IVehiclePositionsRepository.d.ts +1 -0
- package/dist/output-gateway/public/ioc/Di.js +8 -0
- package/dist/output-gateway/public/ioc/Di.js.map +1 -1
- package/dist/output-gateway/public/ioc/OgModuleToken.d.ts +2 -0
- package/dist/output-gateway/public/ioc/OgModuleToken.js +2 -0
- package/dist/output-gateway/public/ioc/OgModuleToken.js.map +1 -1
- package/dist/output-gateway/public/routers/v1/PublicDeparturesRouter.d.ts +10 -0
- package/dist/output-gateway/public/routers/v1/PublicDeparturesRouter.js +27 -0
- package/dist/output-gateway/public/routers/v1/PublicDeparturesRouter.js.map +1 -0
- package/dist/output-gateway/public/routers/v1/{PublicRouter.d.ts → PublicVehiclePositionsRouter.d.ts} +3 -3
- package/dist/output-gateway/public/routers/v1/{PublicRouter.js → PublicVehiclePositionsRouter.js} +8 -8
- package/dist/output-gateway/public/routers/v1/PublicVehiclePositionsRouter.js.map +1 -0
- package/dist/output-gateway/public/routers/v1/helpers/CustomStopIdGroupValidator.d.ts +5 -0
- package/dist/output-gateway/public/routers/v1/helpers/CustomStopIdGroupValidator.js +42 -0
- package/dist/output-gateway/public/routers/v1/helpers/CustomStopIdGroupValidator.js.map +1 -0
- package/dist/output-gateway/public/service/facade/DepartureBoardFacade.d.ts +17 -0
- package/dist/output-gateway/public/service/facade/DepartureBoardFacade.js +106 -0
- package/dist/output-gateway/public/service/facade/DepartureBoardFacade.js.map +1 -0
- package/dist/output-gateway/public/service/transformations/PublicDepartureTransformation.d.ts +34 -0
- package/dist/output-gateway/public/service/transformations/PublicDepartureTransformation.js +54 -0
- package/dist/output-gateway/public/service/transformations/PublicDepartureTransformation.js.map +1 -0
- package/dist/output-gateway/shared/DepartureCalculator.d.ts +10 -0
- package/dist/output-gateway/shared/DepartureCalculator.js +26 -0
- package/dist/output-gateway/shared/DepartureCalculator.js.map +1 -0
- package/dist/output-gateway/shared/RopidRouterUtils.d.ts +2 -1
- package/dist/output-gateway/shared/RopidRouterUtils.js +4 -3
- package/dist/output-gateway/shared/RopidRouterUtils.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/redis/const.d.ts +1 -0
- package/dist/schema-definitions/ropid-gtfs/redis/const.js +5 -0
- package/dist/schema-definitions/ropid-gtfs/redis/const.js.map +1 -0
- package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto.d.ts +12 -0
- package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto.js +3 -0
- package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto.js.map +1 -0
- package/dist/schema-definitions/ropid-gtfs/redis/schemas/PublicGtfsDepartureDtoSchema.d.ts +4 -0
- package/dist/schema-definitions/ropid-gtfs/redis/schemas/PublicGtfsDepartureDtoSchema.js +69 -0
- package/dist/schema-definitions/ropid-gtfs/redis/schemas/PublicGtfsDepartureDtoSchema.js.map +1 -0
- package/docs/implementation_documentation.md +26 -0
- package/docs/openapi-output.yaml +233 -0
- package/package.json +1 -1
- package/dist/output-gateway/public/routers/v1/PublicRouter.js.map +0 -1
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TimetableWorker = void 0;
|
|
4
|
+
const Di_1 = require("../../ioc/Di");
|
|
5
|
+
const RopidGtfsContainerToken_1 = require("../../ioc/RopidGtfsContainerToken");
|
|
4
6
|
const workers_1 = require("@golemio/core/dist/integration-engine/workers");
|
|
7
|
+
const constants_1 = require("./constants");
|
|
5
8
|
const CheckForNewDataTask_1 = require("./tasks/CheckForNewDataTask");
|
|
6
9
|
const CheckSavedRowsAndReplaceTablesTask_1 = require("./tasks/CheckSavedRowsAndReplaceTablesTask");
|
|
7
10
|
const DownloadDatasetsTask_1 = require("./tasks/DownloadDatasetsTask");
|
|
@@ -10,8 +13,13 @@ const TransformAndSaveDataTask_1 = require("./tasks/TransformAndSaveDataTask");
|
|
|
10
13
|
class TimetableWorker extends workers_1.AbstractWorker {
|
|
11
14
|
constructor() {
|
|
12
15
|
super();
|
|
13
|
-
this.name =
|
|
16
|
+
this.name = constants_1.TIMETABLE_WORKER_NAME;
|
|
17
|
+
this.registerTask = (task) => {
|
|
18
|
+
super.registerTask(task);
|
|
19
|
+
task.queuePrefix = this.getQueuePrefix();
|
|
20
|
+
};
|
|
14
21
|
// Register tasks
|
|
22
|
+
this.registerTask(Di_1.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RefreshPublicGtfsDepartureCacheTask));
|
|
15
23
|
this.registerTask(new CheckForNewDataTask_1.CheckForNewDataTask(this.getQueuePrefix()));
|
|
16
24
|
this.registerTask(new CheckSavedRowsAndReplaceTablesTask_1.CheckSavedRowsAndReplaceTablesTask(this.getQueuePrefix()));
|
|
17
25
|
this.registerTask(new DownloadDatasetsTask_1.DownloadDatasetsTask(this.getQueuePrefix()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimetableWorker.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"TimetableWorker.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.ts"],"names":[],"mappings":";;;AAAA,qCAA2D;AAC3D,+EAAqF;AACrF,2EAA6F;AAC7F,2CAAoD;AACpD,qEAAkE;AAClE,mGAAgG;AAChG,uEAAoE;AACpE,uFAAoF;AAEpF,+EAA4E;AAE5E,MAAa,eAAgB,SAAQ,wBAAc;IAG/C;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,iCAAqB,CAAC;QAkBhC,iBAAY,GAAG,CAAC,IAAuB,EAAQ,EAAE;YACpD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QAhBE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CACtB,iDAAuB,CAAC,mCAAmC,CAC9D,CACJ,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,yCAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,YAAY,CAAC,IAAI,uEAAkC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,YAAY,CAAC,IAAI,2CAAoB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,CAAC,IAAI,2DAA4B,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,YAAY,CAAC,IAAI,mDAAwB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;CAMJ;AAvBD,0CAuBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const TIMETABLE_WORKER_NAME = "RopidGtfs";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/workers/timetables/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,WAAW,CAAC"}
|
|
@@ -54,7 +54,11 @@ class CheckSavedRowsAndReplaceTablesTask extends workers_1.AbstractTask {
|
|
|
54
54
|
yield this.dataCacheManager.cleanCache();
|
|
55
55
|
yield this.ropidGtfsRepository.cleanTmpAndOldTables();
|
|
56
56
|
const rabbitExchangeName = this.config.getValue("env.RABBIT_EXCHANGE_NAME");
|
|
57
|
+
// send message to VP worker to refresh GTFS trip data (see task description for more info)
|
|
57
58
|
yield integration_engine_1.QueueManager.sendMessageToExchange(`${rabbitExchangeName}.${constants_1.WORKER_NAME.toLowerCase()}`, "refreshGTFSTripData", {});
|
|
59
|
+
// send message to GTFS timetable worker to refresh public GTFS departure cache
|
|
60
|
+
// so that the new data is available in the public (Lítačka) API
|
|
61
|
+
yield integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "refreshPublicGtfsDepartureCache", {});
|
|
58
62
|
}
|
|
59
63
|
catch (err) {
|
|
60
64
|
yield this.retryOrThrow(notDeployedVersions, data, err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckSavedRowsAndReplaceTablesTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,wEAA2E;AAC3E,kFAAqF;AACrF,wCAA2D;AAC3D,kFAAqF;AAErF,iGAA0G;AAE1G,wEAAqE;AAErE,8EAA8F;AAC9F,2EAA6E;AAC7E,6EAAwE;AAIxE,8EAAuE;AAEvE,MAAa,kCAAmC,SAAQ,sBAA4B;IAchF,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QAdP,cAAS,GAAG,gCAAgC,CAAC;QAC7C,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;QAC3C,WAAM,GAAG,6CAAmB,CAAC;QAazC,IAAI,CAAC,MAAM,GAAG,uBAAkB,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,GAAG,uBAAkB,CAAC,OAAO,CAAgB,qBAAS,CAAC,YAAY,CAAC,CAAC;QAEhF,IAAI,CAAC,kBAAkB,GAAG,uBAAkB,CAAC,OAAO,CAChD,iDAAuB,CAAC,2BAA2B,CACtD,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,mCAAgB,CAAC,WAAW,EAAE,CAAC;QACvD,IAAI,CAAC,sBAAsB,GAAG,uBAAkB,CAAC,OAAO,CACpD,iDAAuB,CAAC,uBAAuB,CAClD,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,uBAAkB,CAAC,OAAO,CAAsB,iDAAuB,CAAC,mBAAmB,CAAC,CAAC;QACxH,IAAI,CAAC,eAAe,GAAG,uBAAkB,CAAC,OAAO,CAAkB,iDAAuB,CAAC,eAAe,CAAC,CAAC;IAChH,CAAC;IAEe,OAAO,CAAC,IAAoB;;YACxC,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAEhF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE;gBAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;gBAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,KAAK,SAAS,IAAI,CAAC,QAAQ,oBAAoB,CAAC,CAAC;aACzH;YAED,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;gBACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBACvD,OAAO;aACV;YAED,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACjH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,CAAC;YAEhG,IAAI;gBACA,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;gBACvD,MAAM,IAAI,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,6CAAqB,CAAC,GAAG,CAAC,CAAC;gBACnG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;gBAC9D,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;gBACzC,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,CAAC;gBAEtD,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAS,0BAA0B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"CheckSavedRowsAndReplaceTablesTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { PublicGtfsDepartureRepository } from "../../../data-access/cache/PublicGtfsDepartureRepository";
|
|
2
|
+
import { DeparturesRepository } from "../../../data-access/precomputed";
|
|
3
|
+
import { PublicDepartureCacheTransformation } from "../../../transformations/PublicDepartureCacheTransformation";
|
|
4
|
+
import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
|
|
5
|
+
import { AbstractTask } from "@golemio/core/dist/integration-engine/workers";
|
|
6
|
+
import { IRefreshPublicDepartureParams } from "./interfaces/IRefreshPublicDepartureParams";
|
|
7
|
+
import { RefreshPublicDepartureValidationSchema } from "./schema/RefreshPublicDepartureSchema";
|
|
8
|
+
export declare class RefreshPublicGtfsDepartureCacheTask extends AbstractTask<IRefreshPublicDepartureParams> {
|
|
9
|
+
private departureTransformation;
|
|
10
|
+
private departureRepository;
|
|
11
|
+
private publicDepartureRepository;
|
|
12
|
+
private config;
|
|
13
|
+
readonly queueName = "refreshPublicGtfsDepartureCache";
|
|
14
|
+
readonly queueTtl: number;
|
|
15
|
+
readonly schema: typeof RefreshPublicDepartureValidationSchema;
|
|
16
|
+
private readonly departurePageSize;
|
|
17
|
+
constructor(departureTransformation: PublicDepartureCacheTransformation, departureRepository: DeparturesRepository, publicDepartureRepository: PublicGtfsDepartureRepository, config: ISimpleConfig);
|
|
18
|
+
protected execute(params: IRefreshPublicDepartureParams): Promise<void>;
|
|
19
|
+
private getIntervalParamsWithDefault;
|
|
20
|
+
private getDeparturesByStopId;
|
|
21
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.RefreshPublicGtfsDepartureCacheTask = void 0;
|
|
25
|
+
const PublicGtfsDepartureRepository_1 = require("../../../data-access/cache/PublicGtfsDepartureRepository");
|
|
26
|
+
const precomputed_1 = require("../../../data-access/precomputed");
|
|
27
|
+
const RopidGtfsContainerToken_1 = require("../../../ioc/RopidGtfsContainerToken");
|
|
28
|
+
const PublicDepartureCacheTransformation_1 = require("../../../transformations/PublicDepartureCacheTransformation");
|
|
29
|
+
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
30
|
+
const workers_1 = require("@golemio/core/dist/integration-engine/workers");
|
|
31
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
32
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
33
|
+
const constants_1 = require("../constants");
|
|
34
|
+
const RefreshPublicDepartureSchema_1 = require("./schema/RefreshPublicDepartureSchema");
|
|
35
|
+
const DEFAULT_PAGE_SIZE = 50000;
|
|
36
|
+
let RefreshPublicGtfsDepartureCacheTask = exports.RefreshPublicGtfsDepartureCacheTask = class RefreshPublicGtfsDepartureCacheTask extends workers_1.AbstractTask {
|
|
37
|
+
constructor(departureTransformation, departureRepository, publicDepartureRepository, config) {
|
|
38
|
+
super(constants_1.TIMETABLE_WORKER_NAME);
|
|
39
|
+
this.departureTransformation = departureTransformation;
|
|
40
|
+
this.departureRepository = departureRepository;
|
|
41
|
+
this.publicDepartureRepository = publicDepartureRepository;
|
|
42
|
+
this.config = config;
|
|
43
|
+
this.queueName = "refreshPublicGtfsDepartureCache";
|
|
44
|
+
this.queueTtl = 59 * 60 * 1000; // 59 minutes
|
|
45
|
+
this.schema = RefreshPublicDepartureSchema_1.RefreshPublicDepartureValidationSchema;
|
|
46
|
+
const departurePageSize = this.config.getValue("module.pid.ropid-gtfs.timetables.refreshPublicGtfsDepartureCache.departurePageSize", DEFAULT_PAGE_SIZE.toString());
|
|
47
|
+
this.departurePageSize = Number.parseInt(departurePageSize);
|
|
48
|
+
}
|
|
49
|
+
execute(params) {
|
|
50
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
const intervalParams = this.getIntervalParamsWithDefault(params);
|
|
52
|
+
const numberOfDepartures = yield this.departureRepository.countDeparturesForPublicCache(intervalParams);
|
|
53
|
+
const pages = Math.ceil(numberOfDepartures / this.departurePageSize);
|
|
54
|
+
for (let page = 0; page < pages; page++) {
|
|
55
|
+
const departuresForCache = yield this.departureRepository.getDepaturesForPublicCache(page, this.departurePageSize, intervalParams);
|
|
56
|
+
const departuresByStopIdDict = this.getDeparturesByStopId(departuresForCache);
|
|
57
|
+
for (const [stopId, departures] of departuresByStopIdDict.entries()) {
|
|
58
|
+
try {
|
|
59
|
+
const departuresDto = this.departureTransformation.transformArray(departures);
|
|
60
|
+
yield this.publicDepartureRepository.replaceDeparturesForStop(departuresDto, stopId, intervalParams);
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
if (err instanceof golemio_errors_1.AbstractGolemioError) {
|
|
64
|
+
throw err;
|
|
65
|
+
}
|
|
66
|
+
throw new golemio_errors_1.GeneralError("Error while refreshing public departure cache", this.constructor.name, err);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
getIntervalParamsWithDefault(params) {
|
|
73
|
+
var _a, _b;
|
|
74
|
+
const defaultIntervalFromHours = this.config.getValue("module.pid.ropid-gtfs.timetables.refreshPublicGtfsDepartureCache.defaultIntervalFromHours", "-3");
|
|
75
|
+
const defaultIntervalToHours = this.config.getValue("module.pid.ropid-gtfs.timetables.refreshPublicGtfsDepartureCache.defaultIntervalToHours", "6");
|
|
76
|
+
return {
|
|
77
|
+
intervalFromHours: (_a = params.intervalFromHours) !== null && _a !== void 0 ? _a : Number.parseInt(defaultIntervalFromHours),
|
|
78
|
+
intervalToHours: (_b = params.intervalToHours) !== null && _b !== void 0 ? _b : Number.parseInt(defaultIntervalToHours),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
getDeparturesByStopId(departures) {
|
|
82
|
+
const departuresByStopId = new Map();
|
|
83
|
+
for (const departure of departures) {
|
|
84
|
+
if (!departuresByStopId.has(departure.stop_id)) {
|
|
85
|
+
departuresByStopId.set(departure.stop_id, []);
|
|
86
|
+
}
|
|
87
|
+
departuresByStopId.get(departure.stop_id).push(departure);
|
|
88
|
+
}
|
|
89
|
+
return departuresByStopId;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
exports.RefreshPublicGtfsDepartureCacheTask = RefreshPublicGtfsDepartureCacheTask = __decorate([
|
|
93
|
+
(0, tsyringe_1.injectable)(),
|
|
94
|
+
__param(0, (0, tsyringe_1.inject)(RopidGtfsContainerToken_1.RopidGtfsContainerToken.PublicDepartureCacheTransformation)),
|
|
95
|
+
__param(1, (0, tsyringe_1.inject)(RopidGtfsContainerToken_1.RopidGtfsContainerToken.DepartureRepository)),
|
|
96
|
+
__param(2, (0, tsyringe_1.inject)(RopidGtfsContainerToken_1.RopidGtfsContainerToken.PublicGtfsDepartureRepository)),
|
|
97
|
+
__param(3, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
|
|
98
|
+
__metadata("design:paramtypes", [PublicDepartureCacheTransformation_1.PublicDepartureCacheTransformation,
|
|
99
|
+
precomputed_1.DeparturesRepository,
|
|
100
|
+
PublicGtfsDepartureRepository_1.PublicGtfsDepartureRepository, Object])
|
|
101
|
+
], RefreshPublicGtfsDepartureCacheTask);
|
|
102
|
+
//# sourceMappingURL=RefreshPublicGtfsDepartureCacheTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RefreshPublicGtfsDepartureCacheTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { RopidGtfsRepository } from "../../../../data-access/RopidGtfsRepository";
|
|
2
|
+
import { DeparturesRepository } from "../../../../data-access/precomputed/DeparturesRepository";
|
|
2
3
|
import { SourceTableSuffixEnum } from "../../../../helpers/SourceTableSuffixEnum";
|
|
3
4
|
import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
|
|
4
5
|
export declare class PrecomputedTablesFacade {
|
|
5
6
|
private readonly logger;
|
|
6
7
|
private readonly ropidGtfsRepository;
|
|
8
|
+
private readonly departureRepository;
|
|
7
9
|
/** Precomputed data repositories */
|
|
8
|
-
private departuresRepository;
|
|
9
10
|
private minMaxStopSequencesRepository;
|
|
10
11
|
private tripScheduleRepository;
|
|
11
12
|
private servicesCalendarRepository;
|
|
12
|
-
constructor(logger: ILogger, ropidGtfsRepository: RopidGtfsRepository);
|
|
13
|
+
constructor(logger: ILogger, ropidGtfsRepository: RopidGtfsRepository, departureRepository: DeparturesRepository);
|
|
13
14
|
createAndPopulatePrecomputedTmpTables: (sourceTableSuffix: SourceTableSuffixEnum) => Promise<void>;
|
|
14
15
|
}
|
|
@@ -32,9 +32,10 @@ const RopidGtfsContainerToken_1 = require("../../../../ioc/RopidGtfsContainerTok
|
|
|
32
32
|
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
33
33
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
34
34
|
let PrecomputedTablesFacade = exports.PrecomputedTablesFacade = class PrecomputedTablesFacade {
|
|
35
|
-
constructor(logger, ropidGtfsRepository) {
|
|
35
|
+
constructor(logger, ropidGtfsRepository, departureRepository) {
|
|
36
36
|
this.logger = logger;
|
|
37
37
|
this.ropidGtfsRepository = ropidGtfsRepository;
|
|
38
|
+
this.departureRepository = departureRepository;
|
|
38
39
|
this.createAndPopulatePrecomputedTmpTables = (sourceTableSuffix) => __awaiter(this, void 0, void 0, function* () {
|
|
39
40
|
yield this.ropidGtfsRepository.createPrecomputedTmpTables();
|
|
40
41
|
this.logger.info(`Datasets: populating temp table ${this.servicesCalendarRepository["tableName"]}${SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp}`);
|
|
@@ -43,13 +44,12 @@ let PrecomputedTablesFacade = exports.PrecomputedTablesFacade = class Precompute
|
|
|
43
44
|
yield this.minMaxStopSequencesRepository.populate(sourceTableSuffix);
|
|
44
45
|
this.logger.info(`Datasets: populating temp table ${this.tripScheduleRepository["tableName"]}${SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp}`);
|
|
45
46
|
yield this.tripScheduleRepository.populate(sourceTableSuffix);
|
|
46
|
-
this.logger.info(`Datasets: populating temp table ${this.
|
|
47
|
-
yield this.
|
|
48
|
-
this.logger.info(`Datasets: running analyze on ${this.
|
|
49
|
-
yield this.
|
|
47
|
+
this.logger.info(`Datasets: populating temp table ${this.departureRepository["tableName"]}${SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp}`);
|
|
48
|
+
yield this.departureRepository.createAndPopulate(sourceTableSuffix);
|
|
49
|
+
this.logger.info(`Datasets: running analyze on ${this.departureRepository["tableName"]}${SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp}`);
|
|
50
|
+
yield this.departureRepository.analyze();
|
|
50
51
|
});
|
|
51
52
|
/** Precomputed data repositories */
|
|
52
|
-
this.departuresRepository = new DeparturesRepository_1.DeparturesRepository();
|
|
53
53
|
this.minMaxStopSequencesRepository = new MinMaxStopSequencesRepository_1.MinMaxStopSequencesRepository();
|
|
54
54
|
this.tripScheduleRepository = new TripScheduleRepository_1.TripScheduleRepository();
|
|
55
55
|
this.servicesCalendarRepository = new ServicesCalendarRepository_1.ServicesCalendarRepository();
|
|
@@ -59,6 +59,8 @@ exports.PrecomputedTablesFacade = PrecomputedTablesFacade = __decorate([
|
|
|
59
59
|
(0, tsyringe_1.injectable)(),
|
|
60
60
|
__param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
|
|
61
61
|
__param(1, (0, tsyringe_1.inject)(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RopidGtfsRepository)),
|
|
62
|
-
|
|
62
|
+
__param(2, (0, tsyringe_1.inject)(RopidGtfsContainerToken_1.RopidGtfsContainerToken.DepartureRepository)),
|
|
63
|
+
__metadata("design:paramtypes", [Object, RopidGtfsRepository_1.RopidGtfsRepository,
|
|
64
|
+
DeparturesRepository_1.DeparturesRepository])
|
|
63
65
|
], PrecomputedTablesFacade);
|
|
64
66
|
//# sourceMappingURL=PrecomputedTablesFacade.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrecomputedTablesFacade.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"PrecomputedTablesFacade.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,qFAAqF;AACrF,mGAAmG;AACnG,qHAAqH;AACrH,+GAA+G;AAC/G,uGAAuG;AACvG,qFAAqF;AACrF,qFAAqF;AACrF,wEAAqE;AAErE,iEAAwE;AAGjE,IAAM,uBAAuB,qCAA7B,MAAM,uBAAuB;IAMhC,YAC8B,MAAgC,EACL,mBAAyD,EACzD,mBAA0D;QAFpE,WAAM,GAAN,MAAM,CAAS;QACY,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,wBAAmB,GAAnB,mBAAmB,CAAsB;QAQ5G,0CAAqC,GAAG,CAAO,iBAAwC,EAAiB,EAAE;YAC7G,MAAM,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,EAAE,CAAC;YAE5D,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,mCAAmC,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,GAAG,6CAAqB,CAAC,GAAG,EAAE,CAChH,CAAC;YACF,MAAM,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAElE,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,mCAAmC,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,GAAG,6CAAqB,CAAC,GAAG,EAAE,CACnH,CAAC;YACF,MAAM,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAErE,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,mCAAmC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,GAAG,6CAAqB,CAAC,GAAG,EAAE,CAC5G,CAAC;YACF,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAE9D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,6CAAqB,CAAC,GAAG,EAAE,CAAC,CAAC;YACzH,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;YAEpE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,6CAAqB,CAAC,GAAG,EAAE,CAAC,CAAC;YACvH,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;QAC7C,CAAC,CAAA,CAAC;QA7BE,oCAAoC;QACpC,IAAI,CAAC,6BAA6B,GAAG,IAAI,6DAA6B,EAAE,CAAC;QACzE,IAAI,CAAC,sBAAsB,GAAG,IAAI,+CAAsB,EAAE,CAAC;QAC3D,IAAI,CAAC,0BAA0B,GAAG,IAAI,uDAA0B,EAAE,CAAC;IACvE,CAAC;CA0BJ,CAAA;kCAzCY,uBAAuB;IADnC,IAAA,qBAAU,GAAE;IAQJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;IACxB,WAAA,IAAA,iBAAM,EAAC,iDAAuB,CAAC,mBAAmB,CAAC,CAAA;IACnD,WAAA,IAAA,iBAAM,EAAC,iDAAuB,CAAC,mBAAmB,CAAC,CAAA;6CADuC,yCAAmB;QACnB,2CAAoB;GAT1G,uBAAuB,CAyCnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IRefreshPublicDepartureParams.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/IRefreshPublicDepartureParams.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.RefreshPublicDepartureValidationSchema = void 0;
|
|
13
|
+
const class_validator_1 = require("@golemio/core/dist/shared/class-validator");
|
|
14
|
+
class RefreshPublicDepartureValidationSchema {
|
|
15
|
+
}
|
|
16
|
+
exports.RefreshPublicDepartureValidationSchema = RefreshPublicDepartureValidationSchema;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, class_validator_1.IsOptional)(),
|
|
19
|
+
(0, class_validator_1.IsInt)()
|
|
20
|
+
// we do not want to have older departures than 3 hours in the cache for now
|
|
21
|
+
// see the PublicGtfsDepartureRepository.replaceDeparturesForStop method
|
|
22
|
+
,
|
|
23
|
+
(0, class_validator_1.Min)(-3),
|
|
24
|
+
__metadata("design:type", Number)
|
|
25
|
+
], RefreshPublicDepartureValidationSchema.prototype, "intervalFromHours", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, class_validator_1.IsOptional)(),
|
|
28
|
+
(0, class_validator_1.IsInt)(),
|
|
29
|
+
__metadata("design:type", Number)
|
|
30
|
+
], RefreshPublicDepartureValidationSchema.prototype, "intervalToHours", void 0);
|
|
31
|
+
//# sourceMappingURL=RefreshPublicDepartureSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RefreshPublicDepartureSchema.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/RefreshPublicDepartureSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+EAAmF;AAGnF,MAAa,sCAAsC;CAWlD;AAXD,wFAWC;AALG;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACR,4EAA4E;IAC5E,wEAAwE;;IACvE,IAAA,qBAAG,EAAC,CAAC,CAAC,CAAC;;iFACmB;AAI3B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;;+EACiB"}
|
|
@@ -46,8 +46,13 @@ let PublicApiCacheRepository = exports.PublicApiCacheRepository = PublicApiCache
|
|
|
46
46
|
const newSetKey = `${PublicApiCacheRepository_1.NAMESPACE_PREFIX}:${(0, node_crypto_1.randomBytes)(4).toString("hex")}`;
|
|
47
47
|
const pipeline = this.connection.pipeline();
|
|
48
48
|
for (const item of data) {
|
|
49
|
+
// geo sorted set with vehicle ids (for quick lookup of vehicle ids in given area)
|
|
49
50
|
pipeline.geoadd(newSetKey, item.lng, item.lat, item.vehicle_id);
|
|
50
|
-
|
|
51
|
+
// list with vehicle ids for each trip (for quick lookup of vehicle ids for each trip)
|
|
52
|
+
pipeline.rpush(`${newSetKey}:trip-${item.gtfs_trip_id}`, item.vehicle_id);
|
|
53
|
+
pipeline.expire(`${newSetKey}:trip-${item.gtfs_trip_id}`, 1 * 60); // 1 minute
|
|
54
|
+
// vehicle data for each vehicle id (for quick lookup of vehicle data for each vehicle id)
|
|
55
|
+
pipeline.set(`${newSetKey}:vehicle-${item.vehicle_id}`, JSON.stringify(item), "EX", 1 * 60);
|
|
51
56
|
}
|
|
52
57
|
pipeline.expire(newSetKey, 1 * 60); // 1 minute
|
|
53
58
|
yield pipeline.exec();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublicApiCacheRepository.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicApiCacheRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,8FAAmF;AAEnF,0IAAuG;AACvG,wFAAqF;AACrF,6EAAwE;AACxE,mFAAkF;AAClF,iEAAgE;AAChE,6CAA0C;AAGnC,IAAM,wBAAwB,mEAA9B,MAAM,wBAAyB,SAAQ,uBAAU;IAGpD;QACI,KAAK,CACD,0BAA0B,EAC1B;YACI,wBAAwB,EAAE,KAAK;YAC/B,MAAM,EAAE,0BAAwB,CAAC,gBAAgB;SACpD,EACD,IAAI,uCAAmB,CAAC,0BAA0B,EAAE,iDAAuB,CAAC,CAC/E,CAAC;IACN,CAAC;IAEY,MAAM,CAAC,IAA0B;;YAC1C,IAAI;gBACA,MAAM,IAAI,CAAC,SAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACxC;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAClB,qDAAqD,GAAG,CAAC,OAAO,EAAE,EAClE,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;aACL;YAED,IAAI;gBACA,MAAM,SAAS,GAAG,GAAG,0BAAwB,CAAC,gBAAgB,IAAI,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnG,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAE5C,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;oBACrB,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"PublicApiCacheRepository.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicApiCacheRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,8FAAmF;AAEnF,0IAAuG;AACvG,wFAAqF;AACrF,6EAAwE;AACxE,mFAAkF;AAClF,iEAAgE;AAChE,6CAA0C;AAGnC,IAAM,wBAAwB,mEAA9B,MAAM,wBAAyB,SAAQ,uBAAU;IAGpD;QACI,KAAK,CACD,0BAA0B,EAC1B;YACI,wBAAwB,EAAE,KAAK;YAC/B,MAAM,EAAE,0BAAwB,CAAC,gBAAgB;SACpD,EACD,IAAI,uCAAmB,CAAC,0BAA0B,EAAE,iDAAuB,CAAC,CAC/E,CAAC;IACN,CAAC;IAEY,MAAM,CAAC,IAA0B;;YAC1C,IAAI;gBACA,MAAM,IAAI,CAAC,SAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACxC;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAClB,qDAAqD,GAAG,CAAC,OAAO,EAAE,EAClE,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;aACL;YAED,IAAI;gBACA,MAAM,SAAS,GAAG,GAAG,0BAAwB,CAAC,gBAAgB,IAAI,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnG,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAE5C,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;oBACrB,kFAAkF;oBAClF,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;oBAEhE,sFAAsF;oBACtF,QAAQ,CAAC,KAAK,CAAC,GAAG,SAAS,SAAS,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC1E,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,SAAS,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW;oBAE9E,0FAA0F;oBAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,YAAY,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;iBAC/F;gBAED,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW;gBAC/C,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAEtB,OAAO,SAAS,CAAC;aACpB;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAC;aAC1E;QACL,CAAC;KAAA;;AA/Ca,yCAAgB,GAAG,qCAA6B,AAAhC,CAAiC;mCADtD,wBAAwB;IADpC,IAAA,qBAAU,GAAE;;GACA,wBAAwB,CAiDpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/output-gateway/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/output-gateway/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sEAAsD;AACtD,6CAA6B;AAC7B,0DAA0C;AAC1C,wEAAwD"}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
const AccessibilityEnums_1 = require("../../../helpers/AccessibilityEnums");
|
|
5
5
|
const RouteTypeEnums_1 = require("../../../helpers/RouteTypeEnums");
|
|
6
6
|
const shared_1 = require("../../shared");
|
|
7
|
+
const DepartureCalculator_1 = require("../../shared/DepartureCalculator");
|
|
7
8
|
const output_gateway_1 = require("@golemio/core/dist/output-gateway");
|
|
8
9
|
const __1 = require("..");
|
|
9
10
|
class DepartureBoardMapper {
|
|
@@ -18,7 +19,7 @@ class DepartureBoardMapper {
|
|
|
18
19
|
output_gateway_1.log.warn(`Unknown type of predicted date: ${predicted}`);
|
|
19
20
|
return null;
|
|
20
21
|
}
|
|
21
|
-
const departure_minutes =
|
|
22
|
+
const departure_minutes = DepartureCalculator_1.DepartureCalculator.getDepartureMinutes(predicted);
|
|
22
23
|
if (departure_minutes < 1)
|
|
23
24
|
return "<1";
|
|
24
25
|
else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DepartureBoardMapper.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/helpers/DepartureBoardMapper.ts"],"names":[],"mappings":";;;AAAA,4EAA2G;AAC3G,oEAA4D;AAC5D,yCAA8C;AAC9C,sEAAwD;AACxD,0BAAuF;AAEvF,MAAqB,oBAAoB;IAC9B,MAAM,CAAC,aAAa,CAAC,IAAS,EAAE,iBAAyB,EAAE,IAAY;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;QAEjH,OAAO,MAAM,CAAC;IAClB,CAAC;IAyEO,MAAM,CAAC,yBAAyB,CAAC,SAAsB;QAC3D,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,EAAE;YAC9B,oBAAG,CAAC,IAAI,CAAC,mCAAmC,SAAS,EAAE,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC;SACf;QACD,MAAM,iBAAiB,GAAG,
|
|
1
|
+
{"version":3,"file":"DepartureBoardMapper.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/helpers/DepartureBoardMapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.PublicDepartureBoardsController = void 0;
|
|
13
|
+
const Di_1 = require("../../ioc/Di");
|
|
14
|
+
const OgModuleToken_1 = require("../../ioc/OgModuleToken");
|
|
15
|
+
class PublicDepartureBoardsController {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.getAll = (req, res, next) => __awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
try {
|
|
19
|
+
const facade = Di_1.OgPublicContainer.resolve(OgModuleToken_1.OgModuleToken.DepartureBoardFacade);
|
|
20
|
+
const params = this.parseDepartureParams(req.query);
|
|
21
|
+
const result = yield facade.getAll(params.stopIds, params.limit, params.routeShortNames, params.minutesAfter);
|
|
22
|
+
if (result.flat().length === 0) {
|
|
23
|
+
res.status(404).json(result);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
res.json(result);
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
next(err);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
parseDepartureParams(query) {
|
|
34
|
+
return {
|
|
35
|
+
stopIds: this.parseStopIds(query.stopIds instanceof Array ? query.stopIds : [query.stopIds]),
|
|
36
|
+
routeShortNames: query.routeShortNames
|
|
37
|
+
? query.routeShortNames instanceof Array
|
|
38
|
+
? query.routeShortNames
|
|
39
|
+
: [query.routeShortNames]
|
|
40
|
+
: null,
|
|
41
|
+
limit: query.limit ? parseInt(query.limit) : 5,
|
|
42
|
+
minutesAfter: query.minutesAfter ? parseInt(query.minutesAfter) : 60,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
parseStopIds(stopIdsFromInput) {
|
|
46
|
+
let output = new Set();
|
|
47
|
+
for (const stopId of stopIdsFromInput) {
|
|
48
|
+
const parsed = JSON.parse(stopId);
|
|
49
|
+
const priority = Object.keys(parsed)[0];
|
|
50
|
+
const stopIds = parsed[priority];
|
|
51
|
+
output.add({
|
|
52
|
+
priority: Number.parseInt(priority),
|
|
53
|
+
stopIds: [...new Set(stopIds)],
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return output;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.PublicDepartureBoardsController = PublicDepartureBoardsController;
|
|
60
|
+
//# sourceMappingURL=PublicDepartureBoardsController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PublicDepartureBoardsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/controllers/v1/PublicDepartureBoardsController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAsD;AACtD,2DAA6D;AAM7D,MAAa,+BAA+B;IACxC;QAEO,WAAM,GAAmB,CAAO,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACrD,IAAI;gBACA,MAAM,MAAM,GAAG,sBAAiB,CAAC,OAAO,CAAuB,6BAAa,CAAC,oBAAoB,CAAC,CAAC;gBACnG,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;gBAE9G,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC7B,OAAO;iBACV;gBAED,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACpB;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;QACL,CAAC,CAAA,CAAC;IAjBa,CAAC;IAmBR,oBAAoB,CAAC,KAAe;QACxC,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,YAAY,KAAK,CAAC,CAAC,CAAE,KAAK,CAAC,OAAoB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAiB,CAAC,CAAC;YACpH,eAAe,EAAE,KAAK,CAAC,eAAe;gBAClC,CAAC,CAAC,KAAK,CAAC,eAAe,YAAY,KAAK;oBACpC,CAAC,CAAE,KAAK,CAAC,eAA4B;oBACrC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAyB,CAAC;gBACvC,CAAC,CAAC,IAAI;YACV,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAe,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAsB,CAAC,CAAC,CAAC,CAAC,EAAE;SACjF,CAAC;IACN,CAAC;IAEO,YAAY,CAAC,gBAA0B;QAC3C,IAAI,MAAM,GAAsC,IAAI,GAAG,EAAE,CAAC;QAE1D,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,OAAO,GAAa,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE3C,MAAM,CAAC,GAAG,CAAC;gBACP,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACnC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;aACjC,CAAC,CAAC;SACN;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAjDD,0EAiDC"}
|
|
@@ -10,3 +10,13 @@ export interface IDetailedInfoParams {
|
|
|
10
10
|
vehicleId: string;
|
|
11
11
|
scopes: DetailedTripScope[];
|
|
12
12
|
}
|
|
13
|
+
export interface IDepartureBoardsStopIdGroups {
|
|
14
|
+
priority: number;
|
|
15
|
+
stopIds: string[];
|
|
16
|
+
}
|
|
17
|
+
export interface IDepartureBoardsParams {
|
|
18
|
+
stopIds: Set<IDepartureBoardsStopIdGroups>;
|
|
19
|
+
limit: number;
|
|
20
|
+
routeShortNames: string[] | null;
|
|
21
|
+
minutesAfter: number;
|
|
22
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IGtfsDepartureRepository } from "../../domain/repository/IGtfsDepartureRepository";
|
|
2
|
+
import { IPublicGtfsDepartureCacheDto } from "../../../../schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto";
|
|
3
|
+
import { IoRedisConnector } from "@golemio/core/dist/helpers/data-access/redis/IoRedisConnector";
|
|
4
|
+
import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
|
|
5
|
+
export declare class PublicGtfsDepartureRepository implements IGtfsDepartureRepository {
|
|
6
|
+
private redisConnector;
|
|
7
|
+
private log;
|
|
8
|
+
constructor(redisConnector: IoRedisConnector, log: ILogger);
|
|
9
|
+
getPublicGtfsDepartureCache(stopIds: string[], minutesAfter: number): Promise<IPublicGtfsDepartureCacheDto[]>;
|
|
10
|
+
private getAndParseDepartureCache;
|
|
11
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.PublicGtfsDepartureRepository = void 0;
|
|
25
|
+
const OgModuleToken_1 = require("../../ioc/OgModuleToken");
|
|
26
|
+
const const_1 = require("../../../../schema-definitions/ropid-gtfs/redis/const");
|
|
27
|
+
const IoRedisConnector_1 = require("@golemio/core/dist/helpers/data-access/redis/IoRedisConnector");
|
|
28
|
+
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
29
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
30
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
31
|
+
let PublicGtfsDepartureRepository = exports.PublicGtfsDepartureRepository = class PublicGtfsDepartureRepository {
|
|
32
|
+
constructor(redisConnector, log) {
|
|
33
|
+
this.redisConnector = redisConnector;
|
|
34
|
+
this.log = log;
|
|
35
|
+
this.getAndParseDepartureCache = (stopId, minutesAfter) => __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
const connection = this.redisConnector.getConnection();
|
|
37
|
+
let departureCache;
|
|
38
|
+
try {
|
|
39
|
+
departureCache = yield connection.zrangebyscore(`${const_1.PUBLIC_DEPARTURE_NAMESPACE_PREFIX}:${stopId}`, "-inf", Math.round(new Date().getTime() / 1000) + minutesAfter * 60);
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot get public departure cache from cache: ${err.message}`, this.constructor.name, err);
|
|
43
|
+
}
|
|
44
|
+
if (departureCache.length === 0) {
|
|
45
|
+
this.log.info(`${this.constructor.name}: Cannot find public departure cache for stop ${stopId} in cache`);
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
return departureCache.map((cache) => JSON.parse(cache));
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot parse public departure cache: ${err.message}`, this.constructor.name, err);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
getPublicGtfsDepartureCache(stopIds, minutesAfter) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
if (!this.redisConnector.isConnected()) {
|
|
59
|
+
yield this.redisConnector.connect();
|
|
60
|
+
}
|
|
61
|
+
const allDepartures = yield Promise.all(stopIds.map((stopId) => this.getAndParseDepartureCache(stopId, minutesAfter)));
|
|
62
|
+
return allDepartures.flat();
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
exports.PublicGtfsDepartureRepository = PublicGtfsDepartureRepository = __decorate([
|
|
67
|
+
(0, tsyringe_1.injectable)(),
|
|
68
|
+
__param(0, (0, tsyringe_1.inject)(OgModuleToken_1.OgModuleToken.RedisConnector)),
|
|
69
|
+
__param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
|
|
70
|
+
__metadata("design:paramtypes", [IoRedisConnector_1.IoRedisConnector, Object])
|
|
71
|
+
], PublicGtfsDepartureRepository);
|
|
72
|
+
//# sourceMappingURL=PublicGtfsDepartureRepository.js.map
|