@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.
Files changed (107) hide show
  1. package/db/example/15_vehicle_descriptors.sql +3 -3
  2. package/db/example/redis/publicDepartureBoardsMock.json +13 -0
  3. package/db/example/redis/publicVehiclePositionsMock.json +24 -0
  4. package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.d.ts +4 -3
  5. package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.js +8 -6
  6. package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.js.map +1 -1
  7. package/dist/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.d.ts +14 -0
  8. package/dist/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.js +82 -0
  9. package/dist/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.js.map +1 -0
  10. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.d.ts +10 -2
  11. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js +81 -10
  12. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js.map +1 -1
  13. package/dist/integration-engine/ropid-gtfs/interfaces/IPublicDepartureDto.d.ts +12 -0
  14. package/dist/integration-engine/ropid-gtfs/interfaces/IPublicDepartureDto.js +3 -0
  15. package/dist/integration-engine/ropid-gtfs/interfaces/IPublicDepartureDto.js.map +1 -0
  16. package/dist/integration-engine/ropid-gtfs/ioc/Di.js +10 -0
  17. package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
  18. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +4 -0
  19. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +4 -0
  20. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
  21. package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.d.ts +7 -0
  22. package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.js +36 -0
  23. package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.js.map +1 -0
  24. package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.d.ts +2 -1
  25. package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js +9 -1
  26. package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js.map +1 -1
  27. package/dist/integration-engine/ropid-gtfs/workers/timetables/constants.d.ts +1 -0
  28. package/dist/integration-engine/ropid-gtfs/workers/timetables/constants.js +5 -0
  29. package/dist/integration-engine/ropid-gtfs/workers/timetables/constants.js.map +1 -0
  30. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js +4 -0
  31. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js.map +1 -1
  32. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask.d.ts +21 -0
  33. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask.js +102 -0
  34. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask.js.map +1 -0
  35. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.d.ts +3 -2
  36. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.js +9 -7
  37. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.js.map +1 -1
  38. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/IRefreshPublicDepartureParams.d.ts +4 -0
  39. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/IRefreshPublicDepartureParams.js +3 -0
  40. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/IRefreshPublicDepartureParams.js.map +1 -0
  41. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/RefreshPublicDepartureSchema.d.ts +5 -0
  42. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/RefreshPublicDepartureSchema.js +31 -0
  43. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/RefreshPublicDepartureSchema.js.map +1 -0
  44. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicApiCacheRepository.js +6 -1
  45. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicApiCacheRepository.js.map +1 -1
  46. package/dist/output-gateway/index.js.map +1 -1
  47. package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js +2 -1
  48. package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js.map +1 -1
  49. package/dist/output-gateway/public/controllers/v1/PublicDepartureBoardsController.d.ts +8 -0
  50. package/dist/output-gateway/public/controllers/v1/PublicDepartureBoardsController.js +60 -0
  51. package/dist/output-gateway/public/controllers/v1/PublicDepartureBoardsController.js.map +1 -0
  52. package/dist/output-gateway/public/controllers/v1/interfaces/PublicParamsInterfaces.d.ts +10 -0
  53. package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.d.ts +11 -0
  54. package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.js +72 -0
  55. package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.js.map +1 -0
  56. package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.d.ts +1 -0
  57. package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.js +22 -2
  58. package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.js.map +1 -1
  59. package/dist/output-gateway/public/domain/IPublicDepartureTransformInputDto.d.ts +9 -0
  60. package/dist/output-gateway/public/domain/IPublicDepartureTransformInputDto.js +3 -0
  61. package/dist/output-gateway/public/domain/IPublicDepartureTransformInputDto.js.map +1 -0
  62. package/dist/output-gateway/public/domain/PublicApiDepartureInterfaces.d.ts +34 -0
  63. package/dist/output-gateway/public/domain/PublicApiDepartureInterfaces.js +3 -0
  64. package/dist/output-gateway/public/domain/PublicApiDepartureInterfaces.js.map +1 -0
  65. package/dist/output-gateway/public/domain/repository/IGtfsDepartureRepository.d.ts +4 -0
  66. package/dist/output-gateway/public/domain/repository/IGtfsDepartureRepository.js +3 -0
  67. package/dist/output-gateway/public/domain/repository/IGtfsDepartureRepository.js.map +1 -0
  68. package/dist/output-gateway/public/domain/repository/IVehiclePositionsRepository.d.ts +1 -0
  69. package/dist/output-gateway/public/ioc/Di.js +8 -0
  70. package/dist/output-gateway/public/ioc/Di.js.map +1 -1
  71. package/dist/output-gateway/public/ioc/OgModuleToken.d.ts +2 -0
  72. package/dist/output-gateway/public/ioc/OgModuleToken.js +2 -0
  73. package/dist/output-gateway/public/ioc/OgModuleToken.js.map +1 -1
  74. package/dist/output-gateway/public/routers/v1/PublicDeparturesRouter.d.ts +10 -0
  75. package/dist/output-gateway/public/routers/v1/PublicDeparturesRouter.js +27 -0
  76. package/dist/output-gateway/public/routers/v1/PublicDeparturesRouter.js.map +1 -0
  77. package/dist/output-gateway/public/routers/v1/{PublicRouter.d.ts → PublicVehiclePositionsRouter.d.ts} +3 -3
  78. package/dist/output-gateway/public/routers/v1/{PublicRouter.js → PublicVehiclePositionsRouter.js} +8 -8
  79. package/dist/output-gateway/public/routers/v1/PublicVehiclePositionsRouter.js.map +1 -0
  80. package/dist/output-gateway/public/routers/v1/helpers/CustomStopIdGroupValidator.d.ts +5 -0
  81. package/dist/output-gateway/public/routers/v1/helpers/CustomStopIdGroupValidator.js +42 -0
  82. package/dist/output-gateway/public/routers/v1/helpers/CustomStopIdGroupValidator.js.map +1 -0
  83. package/dist/output-gateway/public/service/facade/DepartureBoardFacade.d.ts +17 -0
  84. package/dist/output-gateway/public/service/facade/DepartureBoardFacade.js +106 -0
  85. package/dist/output-gateway/public/service/facade/DepartureBoardFacade.js.map +1 -0
  86. package/dist/output-gateway/public/service/transformations/PublicDepartureTransformation.d.ts +34 -0
  87. package/dist/output-gateway/public/service/transformations/PublicDepartureTransformation.js +54 -0
  88. package/dist/output-gateway/public/service/transformations/PublicDepartureTransformation.js.map +1 -0
  89. package/dist/output-gateway/shared/DepartureCalculator.d.ts +10 -0
  90. package/dist/output-gateway/shared/DepartureCalculator.js +26 -0
  91. package/dist/output-gateway/shared/DepartureCalculator.js.map +1 -0
  92. package/dist/output-gateway/shared/RopidRouterUtils.d.ts +2 -1
  93. package/dist/output-gateway/shared/RopidRouterUtils.js +4 -3
  94. package/dist/output-gateway/shared/RopidRouterUtils.js.map +1 -1
  95. package/dist/schema-definitions/ropid-gtfs/redis/const.d.ts +1 -0
  96. package/dist/schema-definitions/ropid-gtfs/redis/const.js +5 -0
  97. package/dist/schema-definitions/ropid-gtfs/redis/const.js.map +1 -0
  98. package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto.d.ts +12 -0
  99. package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto.js +3 -0
  100. package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto.js.map +1 -0
  101. package/dist/schema-definitions/ropid-gtfs/redis/schemas/PublicGtfsDepartureDtoSchema.d.ts +4 -0
  102. package/dist/schema-definitions/ropid-gtfs/redis/schemas/PublicGtfsDepartureDtoSchema.js +69 -0
  103. package/dist/schema-definitions/ropid-gtfs/redis/schemas/PublicGtfsDepartureDtoSchema.js.map +1 -0
  104. package/docs/implementation_documentation.md +26 -0
  105. package/docs/openapi-output.yaml +233 -0
  106. package/package.json +1 -1
  107. 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 = "ropidgtfs";
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,2EAA+E;AAC/E,qEAAkE;AAClE,mGAAgG;AAChG,uEAAoE;AACpE,uFAAoF;AACpF,+EAA4E;AAE5E,MAAa,eAAgB,SAAQ,wBAAc;IAG/C;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,WAAW,CAAC;QAKzB,iBAAiB;QACjB,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;CACJ;AAbD,0CAaC"}
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,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TIMETABLE_WORKER_NAME = void 0;
4
+ exports.TIMETABLE_WORKER_NAME = "RopidGtfs";
5
+ //# sourceMappingURL=constants.js.map
@@ -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":"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"}
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;gBAEpF,2FAA2F;gBAC3F,MAAM,iCAAY,CAAC,qBAAqB,CACpC,GAAG,kBAAkB,IAAI,uBAAc,CAAC,WAAW,EAAE,EAAE,EACvD,qBAAqB,EACrB,EAAE,CACL,CAAC;gBAEF,+EAA+E;gBAC/E,kEAAkE;gBAClE,MAAM,iCAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,iCAAiC,EAAE,EAAE,CAAC,CAAC;aACrG;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;aAC3D;QACL,CAAC;KAAA;IAEa,YAAY,CACtB,mBAAsE,EACtE,IAAoB,EACpB,GAAQ;;YAER,4BAA4B;YAC5B,MAAM,OAAO,CAAC,GAAG,CACb,mBAAmB,CAAC,GAAG,CAAC,CAAO,EAAE,EAAE,EAAE;gBACjC,MAAM,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;YAC/E,CAAC,CAAA,CAAC,CACL,CAAC;YACF,wBAAwB;YACxB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,mBAAmB,CAAC,GAAG,CAAC,CAAO,EAAE,EAAE,EAAE;gBACjC,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;YAC5F,CAAC,CAAA,CAAC,CACL,CAAC;YAEF,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,CAAC;YAEtD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC3B,4CAA4C;gBAC5C,iCAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;gBAE/E,4CAAuB,CAAC,MAAM,CAC1B,IAAI,6BAAY,CACZ,6DAA6D,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,cAAc,EAC/F,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CACJ,CAAC;aACL;iBAAM;gBACH,4DAA4D;gBAC5D,iCAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAC;gBAErF,MAAM,IAAI,6BAAY,CAAC,4CAA4C,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;aACpG;QACL,CAAC;KAAA;IAEa,cAAc,CACxB,QAAiB,EACjB,iBAIE;;YAEF,IAAI,CAAC,QAAQ,EAAE;gBACX,MAAM,IAAI,6BAAY,CAAC,0CAA0C,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAC7F;YAED,MAAM,OAAO,CAAC,GAAG,CACb,iBAAiB,CAAC,GAAG,CAAC,CAAO,EAAE,EAAE,EAAE;gBAC/B,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACxF,CAAC,CAAA,CAAC,CACL,CAAC;QACN,CAAC;KAAA;IAEa,mBAAmB,CAAC,IAAoB;;YAClD,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAO,OAAO,EAAE,EAAE;gBAChC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC5E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,kCAAkC,CAC/E,OAAO,EACP,YAAY,CAAC,OAAO,CACvB,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;YACjD,CAAC,CAAA,CAAC,CACL,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAE3E,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;QAC9C,CAAC;KAAA;CACJ;AAjJD,gFAiJC"}
@@ -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.departuresRepository["tableName"]}${SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp}`);
47
- yield this.departuresRepository.createAndPopulate(sourceTableSuffix);
48
- this.logger.info(`Datasets: running analyze on ${this.departuresRepository["tableName"]}${SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp}`);
49
- yield this.departuresRepository.analyze();
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
- __metadata("design:paramtypes", [Object, RopidGtfsRepository_1.RopidGtfsRepository])
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":";;;;;;;;;;;;;;;;;;;;;;;;AACA,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;IAOhC,YAC8B,MAAgC,EACL,mBAAyD;QADnE,WAAM,GAAN,MAAM,CAAS;QACY,wBAAmB,GAAnB,mBAAmB,CAAqB;QAS3G,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,oBAAoB,CAAC,WAAW,CAAC,GAAG,6CAAqB,CAAC,GAAG,EAAE,CAAC,CAAC;YAC1H,MAAM,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;YAErE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,GAAG,6CAAqB,CAAC,GAAG,EAAE,CAAC,CAAC;YACxH,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAC9C,CAAC,CAAA,CAAC;QA9BE,oCAAoC;QACpC,IAAI,CAAC,oBAAoB,GAAG,IAAI,2CAAoB,EAAE,CAAC;QACvD,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;kCA1CY,uBAAuB;IADnC,IAAA,qBAAU,GAAE;IASJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;IACxB,WAAA,IAAA,iBAAM,EAAC,iDAAuB,CAAC,mBAAmB,CAAC,CAAA;6CAAuC,yCAAmB;GATzG,uBAAuB,CA0CnC"}
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,4 @@
1
+ export interface IRefreshPublicDepartureParams {
2
+ intervalFromHours?: number;
3
+ intervalToHours?: number;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IRefreshPublicDepartureParams.js.map
@@ -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,5 @@
1
+ import { IRefreshPublicDepartureParams } from "../interfaces/IRefreshPublicDepartureParams";
2
+ export declare class RefreshPublicDepartureValidationSchema implements IRefreshPublicDepartureParams {
3
+ intervalFromHours?: number;
4
+ intervalToHours?: number;
5
+ }
@@ -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
- pipeline.set(`${newSetKey}-${item.vehicle_id}`, JSON.stringify(item), "EX", 1 * 60);
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;oBAChE,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;iBACvF;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;;AAxCa,yCAAgB,GAAG,qCAA6B,AAAhC,CAAiC;mCADtD,wBAAwB;IADpC,IAAA,qBAAU,GAAE;;GACA,wBAAwB,CA0CpC"}
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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,sEAAsD;AACtD,6CAA6B;AAC7B,0DAA0C;AAC1C,wEAAwD"}
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 = Math.round((predicted.getTime() - Date.now()) / (60 * 1000));
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":"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"}
1
+ {"version":3,"file":"DepartureBoardMapper.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/helpers/DepartureBoardMapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="express" />
2
+ import { RequestHandler } from "@golemio/core/dist/shared/express";
3
+ export declare class PublicDepartureBoardsController {
4
+ constructor();
5
+ getAll: RequestHandler;
6
+ private parseDepartureParams;
7
+ private parseStopIds;
8
+ }
@@ -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