@golemio/pid 5.0.0-rc.2095893792 → 5.0.0-rc.2149588470

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 (106) hide show
  1. package/db/migrations/postgresql/20250930131408-event-deletedAt.js +53 -0
  2. package/db/migrations/postgresql/20251020110708-get-departures-add-aftertrack.js +53 -0
  3. package/db/migrations/postgresql/sqls/20250930131408-event-deletedAt-down.sql +3 -0
  4. package/db/migrations/postgresql/sqls/20250930131408-event-deletedAt-up.sql +2 -0
  5. package/db/migrations/postgresql/sqls/20251020110708-get-departures-add-aftertrack-down.sql +284 -0
  6. package/db/migrations/postgresql/sqls/20251020110708-get-departures-add-aftertrack-up.sql +289 -0
  7. package/dist/helpers/GtfsStopParser.d.ts +1 -0
  8. package/dist/helpers/GtfsStopParser.js +6 -1
  9. package/dist/helpers/GtfsStopParser.js.map +1 -1
  10. package/dist/integration-engine/data-retention/helpers/SelectRepositoryFactory.js +0 -2
  11. package/dist/integration-engine/data-retention/helpers/SelectRepositoryFactory.js.map +1 -1
  12. package/dist/integration-engine/data-retention/workers/constants/RepositoryTableNameEnum.d.ts +0 -1
  13. package/dist/integration-engine/data-retention/workers/constants/RepositoryTableNameEnum.js +0 -1
  14. package/dist/integration-engine/data-retention/workers/constants/RepositoryTableNameEnum.js.map +1 -1
  15. package/dist/integration-engine/jis/repositories/JISEventsRepository.js +9 -4
  16. package/dist/integration-engine/jis/repositories/JISEventsRepository.js.map +1 -1
  17. package/dist/integration-engine/jis/transformations/JISEventsTransformation.js +1 -0
  18. package/dist/integration-engine/jis/transformations/JISEventsTransformation.js.map +1 -1
  19. package/dist/integration-engine/jis/transformations/UpdateEventWebhookTransformation.d.ts +6 -2
  20. package/dist/integration-engine/jis/transformations/UpdateEventWebhookTransformation.js +1 -0
  21. package/dist/integration-engine/jis/transformations/UpdateEventWebhookTransformation.js.map +1 -1
  22. package/dist/integration-engine/jis/workers/tasks/RefreshJISEventsTask.js.map +1 -1
  23. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js +1 -0
  24. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js.map +1 -1
  25. package/dist/integration-engine/ropid-gtfs/interfaces/IPublicDepartureDto.d.ts +1 -0
  26. package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.js +1 -1
  27. package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.js.map +1 -1
  28. package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/data-access/DescriptorRepository.d.ts +2 -2
  29. package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/data-access/DescriptorRepository.js +4 -5
  30. package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/data-access/DescriptorRepository.js.map +1 -1
  31. package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/tasks/RefreshDescriptorsTask.js +1 -1
  32. package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/tasks/RefreshDescriptorsTask.js.map +1 -1
  33. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DelayComputationManager.d.ts +6 -1
  34. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DelayComputationManager.js +288 -236
  35. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DelayComputationManager.js.map +1 -1
  36. package/dist/output-gateway/jis/controllers/v1/V1EventsController.js +3 -1
  37. package/dist/output-gateway/jis/controllers/v1/V1EventsController.js.map +1 -1
  38. package/dist/output-gateway/jis/data-access/JISEventsRepository.js +6 -4
  39. package/dist/output-gateway/jis/data-access/JISEventsRepository.js.map +1 -1
  40. package/dist/output-gateway/jis/data-access/RopidGTFSRoutesRepository.js +3 -1
  41. package/dist/output-gateway/jis/data-access/RopidGTFSRoutesRepository.js.map +1 -1
  42. package/dist/output-gateway/jis/routers/v1/V1JISRouter.js +1 -1
  43. package/dist/output-gateway/jis/routers/v1/V1JISRouter.js.map +1 -1
  44. package/dist/output-gateway/pid/controllers/v2/V2DepartureBoardsController.js +3 -1
  45. package/dist/output-gateway/pid/controllers/v2/V2DepartureBoardsController.js.map +1 -1
  46. package/dist/output-gateway/pid/controllers/v3/V3InfotextsController.js +5 -2
  47. package/dist/output-gateway/pid/controllers/v3/V3InfotextsController.js.map +1 -1
  48. package/dist/output-gateway/pid/controllers/v3/V3TransferBoardsController.js +6 -4
  49. package/dist/output-gateway/pid/controllers/v3/V3TransferBoardsController.js.map +1 -1
  50. package/dist/output-gateway/pid/controllers/v4/V4TransferBoardsController.d.ts +4 -1
  51. package/dist/output-gateway/pid/controllers/v4/V4TransferBoardsController.js +24 -7
  52. package/dist/output-gateway/pid/controllers/v4/V4TransferBoardsController.js.map +1 -1
  53. package/dist/output-gateway/pid/data-access/JISInfotextRepository.d.ts +4 -4
  54. package/dist/output-gateway/pid/data-access/JISInfotextRepository.js +12 -8
  55. package/dist/output-gateway/pid/data-access/JISInfotextRepository.js.map +1 -1
  56. package/dist/output-gateway/pid/helpers/TransferBoardFilter.d.ts +3 -0
  57. package/dist/output-gateway/pid/helpers/TransferBoardFilter.js +17 -0
  58. package/dist/output-gateway/pid/helpers/TransferBoardFilter.js.map +1 -1
  59. package/dist/output-gateway/pid/index.d.ts +8 -0
  60. package/dist/output-gateway/pid/index.js.map +1 -1
  61. package/dist/output-gateway/pid/models/helpers/SkipHelper.js +9 -2
  62. package/dist/output-gateway/pid/models/helpers/SkipHelper.js.map +1 -1
  63. package/dist/output-gateway/pid/routers/v2/V2PIDRouter.js +2 -2
  64. package/dist/output-gateway/pid/routers/v2/V2PIDRouter.js.map +1 -1
  65. package/dist/output-gateway/pid/routers/v3/V3PIDRouter.js +1 -1
  66. package/dist/output-gateway/pid/routers/v3/V3PIDRouter.js.map +1 -1
  67. package/dist/output-gateway/pid/service/facade/InfotextFacade.d.ts +1 -1
  68. package/dist/output-gateway/pid/service/facade/InfotextFacade.js +2 -2
  69. package/dist/output-gateway/pid/service/facade/InfotextFacade.js.map +1 -1
  70. package/dist/output-gateway/pid/service/facade/TransferFacade.d.ts +26 -4
  71. package/dist/output-gateway/pid/service/facade/TransferFacade.js +214 -0
  72. package/dist/output-gateway/pid/service/facade/TransferFacade.js.map +1 -1
  73. package/dist/output-gateway/public/controllers/v2/V2PublicDepartureBoardsController.js +5 -2
  74. package/dist/output-gateway/public/controllers/v2/V2PublicDepartureBoardsController.js.map +1 -1
  75. package/dist/output-gateway/public/controllers/v2/V2PublicGtfsController.js +5 -3
  76. package/dist/output-gateway/public/controllers/v2/V2PublicGtfsController.js.map +1 -1
  77. package/dist/output-gateway/public/controllers/v2/V2PublicVehiclePositionsController.js +7 -4
  78. package/dist/output-gateway/public/controllers/v2/V2PublicVehiclePositionsController.js.map +1 -1
  79. package/dist/output-gateway/public/controllers/v2/interfaces/PublicParamsInterfaces.d.ts +1 -0
  80. package/dist/output-gateway/public/data-access/redis/DelayComputationRepository.d.ts +2 -0
  81. package/dist/output-gateway/public/data-access/redis/DelayComputationRepository.js +44 -0
  82. package/dist/output-gateway/public/data-access/redis/DelayComputationRepository.js.map +1 -1
  83. package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.js +1 -1
  84. package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.js.map +1 -1
  85. package/dist/output-gateway/public/data-access/redis/PublicStopTimeRepository.d.ts +1 -1
  86. package/dist/output-gateway/public/data-access/redis/PublicStopTimeRepository.js +16 -20
  87. package/dist/output-gateway/public/data-access/redis/PublicStopTimeRepository.js.map +1 -1
  88. package/dist/output-gateway/public/routers/v2/V2PublicDeparturesRouter.js +1 -0
  89. package/dist/output-gateway/public/routers/v2/V2PublicDeparturesRouter.js.map +1 -1
  90. package/dist/output-gateway/public/service/facade/DepartureBoardFacade.d.ts +3 -1
  91. package/dist/output-gateway/public/service/facade/DepartureBoardFacade.js +8 -7
  92. package/dist/output-gateway/public/service/facade/DepartureBoardFacade.js.map +1 -1
  93. package/dist/output-gateway/ropid-gtfs/routers/v2/V2GTFSRouter.js +48 -39
  94. package/dist/output-gateway/ropid-gtfs/routers/v2/V2GTFSRouter.js.map +1 -1
  95. package/dist/output-gateway/vehicle-positions/routers/v2/V2VehiclePositionsRouter.js +16 -13
  96. package/dist/output-gateway/vehicle-positions/routers/v2/V2VehiclePositionsRouter.js.map +1 -1
  97. package/dist/schema-definitions/jis/datasources/JISEventsJsonSchema.js +6 -0
  98. package/dist/schema-definitions/jis/datasources/JISEventsJsonSchema.js.map +1 -1
  99. package/dist/schema-definitions/jis/datasources/interfaces/IJISEvent.d.ts +1 -0
  100. package/dist/schema-definitions/jis/models/JISEventsModel.d.ts +1 -0
  101. package/dist/schema-definitions/jis/models/JISEventsModel.js +10 -0
  102. package/dist/schema-definitions/jis/models/JISEventsModel.js.map +1 -1
  103. package/dist/schema-definitions/jis/models/interfaces/IJISEvent.d.ts +1 -0
  104. package/docs/implementation_documentation.md +2 -2
  105. package/docs/openapi-output.yaml +48 -10
  106. package/package.json +3 -3
@@ -5,12 +5,14 @@ const RouteTypeEnums_1 = require("../../../../helpers/RouteTypeEnums");
5
5
  const const_1 = require("../../domain/const");
6
6
  const Di_1 = require("../../ioc/Di");
7
7
  const OgModuleToken_1 = require("../../ioc/OgModuleToken");
8
+ const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
8
9
  class V2PublicVehiclePositionsController {
9
10
  constructor() {
10
11
  this.getAll = async (req, res, next) => {
11
12
  try {
13
+ const queryData = (0, express_validator_1.matchedData)(req);
12
14
  const facade = Di_1.OgPublicContainer.resolve(OgModuleToken_1.OgModuleToken.PublicVehiclePositionsFacade);
13
- const params = this.parsePositionsParams(req.query);
15
+ const params = this.parsePositionsParams(queryData);
14
16
  const result = await facade.getAll(params.boundingBox, params.routeShortName, params.type);
15
17
  res.json(result);
16
18
  }
@@ -64,12 +66,13 @@ class V2PublicVehiclePositionsController {
64
66
  };
65
67
  }
66
68
  parseDetailedParams(req) {
69
+ const queryData = (0, express_validator_1.matchedData)(req);
67
70
  return {
68
71
  vehicleId: req.params.vehicleId,
69
72
  tripId: req.params.gtfsTripId,
70
- scopes: req.query.scopes instanceof Array
71
- ? Array.from(new Set(req.query.scopes))
72
- : [req.query.scopes],
73
+ scopes: queryData.scopes instanceof Array
74
+ ? Array.from(new Set(queryData.scopes))
75
+ : [queryData.scopes],
73
76
  };
74
77
  }
75
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"V2PublicVehiclePositionsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/controllers/v2/V2PublicVehiclePositionsController.ts"],"names":[],"mappings":";;;AAAA,uEAA2D;AAC3D,8CAA6D;AAC7D,qCAAsD;AACtD,2DAA6D;AAQ7D,MAAa,kCAAkC;IAC3C;QAEO,WAAM,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACrD,IAAI;gBACA,MAAM,MAAM,GAAG,sBAAiB,CAAC,OAAO,CAA+B,6BAAa,CAAC,4BAA4B,CAAC,CAAC;gBACnH,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAE3F,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACpB;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;QACL,CAAC,CAAC;QAEK,sBAAiB,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAChE,IAAI;gBACA,MAAM,MAAM,GAAG,sBAAiB,CAAC,OAAO,CAAqB,6BAAa,CAAC,kBAAkB,CAAC,CAAC;gBAC/F,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE7E,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClB;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;QACL,CAAC,CAAC;QAEK,8BAAyB,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACxE,IAAI;gBACA,MAAM,MAAM,GAAG,sBAAiB,CAAC,OAAO,CAAqB,6BAAa,CAAC,kBAAkB,CAAC,CAAC;gBAC/F,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE5F,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClB;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;QACL,CAAC,CAAC;IApCa,CAAC;IAsCR,oBAAoB,CAAC,KAAe;QACxC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAE,KAAK,CAAC,WAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvH,mEAAmE;QACnE,OAAO;YACH,WAAW,EAAE;gBACT,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,gBAAgB;gBACpF,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,eAAe;gBAClF,oBAAoB,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,oBAAoB;gBAC5F,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,mBAAmB;aAC7F;YACD,cAAc,EAAE,KAAK,CAAC,cAAc;gBAChC,CAAC,CAAC,KAAK,CAAC,cAAc,YAAY,KAAK;oBACnC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,cAAwB,CAAC;oBACxE,CAAC,CAAE,KAAK,CAAC,cAAyB;gBACtC,CAAC,CAAC,SAAS;YACf,IAAI,EAAE,KAAK,CAAC,SAAS;gBACjB,CAAC,CAAC,KAAK,CAAC,SAAS,YAAY,KAAK;oBAC9B,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,iCAAgB,EAAC,IAAc,CAAC,CAAC;oBACjE,CAAC,CAAC,CAAC,IAAA,iCAAgB,EAAC,KAAK,CAAC,SAAmB,CAAC,CAAC;gBACnD,CAAC,CAAC,SAAS;SAClB,CAAC;IACN,CAAC;IAEO,mBAAmB,CAAC,GAAY;QACpC,OAAO;YACH,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS;YAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU;YAC7B,MAAM,EACF,GAAG,CAAC,KAAK,CAAC,MAAM,YAAY,KAAK;gBAC7B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;gBAC9D,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAA2B,CAAC;SACpD,CAAC;IACN,CAAC;CACJ;AAxED,gFAwEC"}
1
+ {"version":3,"file":"V2PublicVehiclePositionsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/controllers/v2/V2PublicVehiclePositionsController.ts"],"names":[],"mappings":"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"}
@@ -24,4 +24,5 @@ export interface IDepartureBoardsParams {
24
24
  limit: number;
25
25
  routeShortNames: string[] | null;
26
26
  minutesAfter: number;
27
+ minutesBefore: number;
27
28
  }
@@ -7,4 +7,6 @@ export declare class DelayComputationRepository implements IDelayComputationRepo
7
7
  private log;
8
8
  constructor(redisConnector: IoRedisConnector, log: ILogger);
9
9
  getDelayComputationCacheProperty<K extends keyof IDelayComputationDto>(gtfsTripId: string, property: K): Promise<Pick<IDelayComputationDto, K> | null>;
10
+ private customJsonReducer;
11
+ getJsonPathFieldsAsListOfValues(tripIds: string[], jsonPath: string, expectingKeysCount: number): Promise<Map<string, any[]> | null>;
10
12
  }
@@ -43,6 +43,50 @@ let DelayComputationRepository = exports.DelayComputationRepository = class Dela
43
43
  throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Failed to fetch '${property}' from delay computation cache`, this.constructor.name, err);
44
44
  }
45
45
  }
46
+ customJsonReducer(fieldCould) {
47
+ return function reduceListOfFields(prev, curr, idx) {
48
+ if (idx % fieldCould === 0) {
49
+ // zero-indexed is the beginning of new-list of properties
50
+ prev.push([curr]);
51
+ }
52
+ else {
53
+ // all next are pushed into the new-list
54
+ prev[prev.length - 1].push(curr);
55
+ }
56
+ return prev;
57
+ };
58
+ }
59
+ async getJsonPathFieldsAsListOfValues(tripIds, jsonPath, expectingKeysCount) {
60
+ if (!this.redisConnector.isConnected()) {
61
+ await this.redisConnector.connect();
62
+ }
63
+ const mapTripToStops = new Map();
64
+ if (!tripIds.length)
65
+ return mapTripToStops;
66
+ const redisKeys = tripIds.map((t) => `${const_1.GTFS_DELAY_COMPUTATION_NAMESPACE_PREFIX}:${t}`);
67
+ const connection = this.redisConnector.getConnection();
68
+ try {
69
+ const jsonResult = await connection.call("JSON.MGET", redisKeys.concat(jsonPath));
70
+ if (!jsonResult) {
71
+ this.log.info(`${this.constructor.name}: Cannot read custom jsonPath '${jsonPath}' in Redis keys for trip ids: '${tripIds}'`);
72
+ return null;
73
+ }
74
+ const reducerFn = this.customJsonReducer(expectingKeysCount);
75
+ for (const [index, resultLine] of jsonResult.entries()) {
76
+ if (!resultLine) {
77
+ mapTripToStops.set(tripIds[index], []);
78
+ }
79
+ else {
80
+ const parsedLine = JSON.parse(resultLine);
81
+ mapTripToStops.set(tripIds[index], parsedLine.reduce(reducerFn, []));
82
+ }
83
+ }
84
+ return mapTripToStops;
85
+ }
86
+ catch (err) {
87
+ throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Failed to read custom jsonPath '${jsonPath}' from delay computation cache`, this.constructor.name, err);
88
+ }
89
+ }
46
90
  };
47
91
  exports.DelayComputationRepository = DelayComputationRepository = __decorate([
48
92
  (0, tsyringe_1.injectable)(),
@@ -1 +1 @@
1
- {"version":3,"file":"DelayComputationRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/data-access/redis/DelayComputationRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yEAA2D;AAG3D,wFAA6F;AAC7F,oGAAiG;AACjG,wEAAqE;AAErE,+DAAuE;AACvE,6EAAwE;AACxE,iEAAwE;AAGjE,IAAM,0BAA0B,wCAAhC,MAAM,0BAA0B;IACnC,YACmD,cAAgC,EAC7C,GAAY;QADC,mBAAc,GAAd,cAAc,CAAkB;QAC7C,QAAG,GAAH,GAAG,CAAS;IAC/C,CAAC;IAEG,KAAK,CAAC,gCAAgC,CACzC,UAAkB,EAClB,QAAW;QAEX,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE;YACpC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACvC;QAED,MAAM,QAAQ,GAAG,GAAG,+CAAuC,IAAI,UAAU,EAAE,CAAC;QAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QAEvD,IAAI;YACA,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC,UAAU,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,eAAe,QAAQ,6BAA6B,QAAQ,GAAG,CAAC,CAAC;gBACvG,OAAO,IAAI,CAAC;aACf;YACD,OAAO,iCAAe,CAAC,WAAW,CAA0B,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SAC5G;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,sBAAsB,QAAQ,gCAAgC,EACtF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;SACL;IACL,CAAC;CACJ,CAAA;qCAhCY,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,cAAc,CAAC,CAAA;IACrC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCADsC,mCAAgB;GAF1E,0BAA0B,CAgCtC"}
1
+ {"version":3,"file":"DelayComputationRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/data-access/redis/DelayComputationRepository.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ let PublicGtfsDepartureRepository = exports.PublicGtfsDepartureRepository = clas
29
29
  let departureCache;
30
30
  const now = Date.now();
31
31
  try {
32
- departureCache = await connection.zrangebyscore(`${const_1.PUBLIC_DEPARTURE_NAMESPACE_PREFIX}:${stopId}`, Math.round((timeFrom?.getTime() ?? now) / 1000) - ONE_SECOND, Math.round((timeFrom?.getTime() ?? now) / 1000) + minutesAfter * 60, "LIMIT", 0, limit || 100 // max on v2 is 30, max on v4 SHOULD BE similar (usually 2x the board-rows)
32
+ departureCache = await connection.zrangebyscore(`${const_1.PUBLIC_DEPARTURE_NAMESPACE_PREFIX}:${stopId}`, Math.round((timeFrom?.getTime() ?? now) / 1000), Math.round((timeFrom?.getTime() ?? now) / 1000) + minutesAfter * 60, "LIMIT", 0, limit || 100 // max on v2 is 30, max on v4 SHOULD BE similar (usually 2x the board-rows)
33
33
  );
34
34
  }
35
35
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"PublicGtfsDepartureRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,iFAAgF;AAEhF,oGAAiG;AACjG,wEAAqE;AAErE,+DAAuE;AACvE,6EAAwE;AACxE,iEAAwE;AAExE,MAAM,UAAU,GAAG,CAAC,CAAC;AAGd,IAAM,6BAA6B,2CAAnC,MAAM,6BAA6B;IACtC,YAC2C,cAAwC,EACrD,GAAoB;QADC,mBAAc,GAAd,cAAc,CAAkB;QAC7C,QAAG,GAAH,GAAG,CAAS;QAoB1C,8BAAyB,GAAG,KAAK,EACrC,MAAc,EACd,YAAoB,EACpB,QAAe,EACf,KAAc,EACyB,EAAE;YACzC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YAEvD,IAAI,cAAwB,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEvB,IAAI;gBACA,cAAc,GAAG,MAAM,UAAU,CAAC,aAAa,CAC3C,GAAG,yCAAiC,IAAI,MAAM,EAAE,EAChD,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,UAAU,EAC5D,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,YAAY,GAAG,EAAE,EACnE,OAAO,EACP,CAAC,EACD,KAAK,IAAI,GAAG,CAAC,2EAA2E;iBAC3F,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,mDAAmD,GAAG,CAAC,OAAO,EAAE,EACxF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;aACL;YAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,iDAAiD,MAAM,WAAW,CAAC,CAAC;gBAC1G,OAAO,EAAE,CAAC;aACb;YAED,IAAI;gBACA,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAiC,CAAC,CAAC;aAC3F;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,0CAA0C,GAAG,CAAC,OAAO,EAAE,EAC/E,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;aACL;QACL,CAAC,CAAC;IA7DC,CAAC;IAEG,KAAK,CAAC,2BAA2B,CACpC,OAAiB,EACjB,YAAoB,EACpB,QAAe,EACf,KAAc;QAEd,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE;YACpC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACvC;QAED,MAAM,aAAa,GAAqC,MAAM,OAAO,CAAC,GAAG,CACrE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CACjG,CAAC;QAEF,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;CA6CJ,CAAA;wCAlEY,6BAA6B;IADzC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,cAAc,CAAC,CAAA;IACrC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCADsC,mCAAgB;GAF1E,6BAA6B,CAkEzC"}
1
+ {"version":3,"file":"PublicGtfsDepartureRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,iFAAgF;AAEhF,oGAAiG;AACjG,wEAAqE;AAErE,+DAAuE;AACvE,6EAAwE;AACxE,iEAAwE;AAExE,MAAM,UAAU,GAAG,CAAC,CAAC;AAGd,IAAM,6BAA6B,2CAAnC,MAAM,6BAA6B;IACtC,YAC2C,cAAwC,EACrD,GAAoB;QADC,mBAAc,GAAd,cAAc,CAAkB;QAC7C,QAAG,GAAH,GAAG,CAAS;QAoB1C,8BAAyB,GAAG,KAAK,EACrC,MAAc,EACd,YAAoB,EACpB,QAAe,EACf,KAAc,EACyB,EAAE;YACzC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YAEvD,IAAI,cAAwB,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEvB,IAAI;gBACA,cAAc,GAAG,MAAM,UAAU,CAAC,aAAa,CAC3C,GAAG,yCAAiC,IAAI,MAAM,EAAE,EAChD,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,EAC/C,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,YAAY,GAAG,EAAE,EACnE,OAAO,EACP,CAAC,EACD,KAAK,IAAI,GAAG,CAAC,2EAA2E;iBAC3F,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,mDAAmD,GAAG,CAAC,OAAO,EAAE,EACxF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;aACL;YAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,iDAAiD,MAAM,WAAW,CAAC,CAAC;gBAC1G,OAAO,EAAE,CAAC;aACb;YAED,IAAI;gBACA,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAiC,CAAC,CAAC;aAC3F;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,0CAA0C,GAAG,CAAC,OAAO,EAAE,EAC/E,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;aACL;QACL,CAAC,CAAC;IA7DC,CAAC;IAEG,KAAK,CAAC,2BAA2B,CACpC,OAAiB,EACjB,YAAoB,EACpB,QAAe,EACf,KAAc;QAEd,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE;YACpC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACvC;QAED,MAAM,aAAa,GAAqC,MAAM,OAAO,CAAC,GAAG,CACrE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CACjG,CAAC;QAEF,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;CA6CJ,CAAA;wCAlEY,6BAA6B;IADzC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,cAAc,CAAC,CAAA;IACrC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCADsC,mCAAgB;GAF1E,6BAA6B,CAkEzC"}
@@ -7,5 +7,5 @@ export declare class PublicStopTimeRepository implements IStopTimeRepository {
7
7
  private log;
8
8
  constructor(redisConnector: IoRedisConnector, log: ILogger);
9
9
  getPublicStopTimeCache(vehicleId: string, gtfsTripId: string): Promise<IPublicStopTimeCacheDto[]>;
10
- getManyPublicStopTimeCaches(tuples: Array<[string, string]>): Promise<Map<string, IPublicStopTimeCacheDto[]>>;
10
+ getManyPublicStopTimeCaches(tuples: string[][]): Promise<Map<string, IPublicStopTimeCacheDto[]>>;
11
11
  }
@@ -33,41 +33,37 @@ let PublicStopTimeRepository = exports.PublicStopTimeRepository = class PublicSt
33
33
  try {
34
34
  const key = `${vehicleId}-${gtfsTripId}`;
35
35
  stopTimeCache = await connection.get(`${const_1.PUBLIC_STOP_TIME_CACHE_NAMESPACE_PREFIX}:${key}`);
36
- }
37
- catch (err) {
38
- throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot get public stop time cache from cache: ${err.message}`, this.constructor.name, err);
39
- }
40
- if (stopTimeCache === null) {
41
- this.log.info(`${this.constructor.name}: Cannot find public stop time cache`);
42
- return [];
43
- }
44
- try {
36
+ if (stopTimeCache === null) {
37
+ this.log.info(`${this.constructor.name}: Cannot find public stop time cache`);
38
+ return [];
39
+ }
45
40
  return JSON.parse(stopTimeCache);
46
41
  }
47
42
  catch (err) {
48
- throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot parse public stop time cache: ${err.message}`, this.constructor.name, err);
43
+ throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot read and parse public stop time cache: ${err.message}`, this.constructor.name, err);
49
44
  }
50
45
  }
51
46
  async getManyPublicStopTimeCaches(tuples) {
52
47
  const connection = this.redisConnector.getConnection();
53
48
  const parsedStopTimeCaches = new Map();
49
+ if (!tuples.length)
50
+ return parsedStopTimeCaches;
54
51
  const mappedKeys = tuples.map((k) => `${const_1.PUBLIC_STOP_TIME_CACHE_NAMESPACE_PREFIX}:${k[0]}-${k[1]}`);
55
52
  const stopCaches = await connection.mget(mappedKeys);
56
53
  let i = -1;
57
- for (const stopCache of stopCaches) {
58
- i++;
59
- if (stopCache === null) {
60
- continue;
61
- }
62
- try {
54
+ try {
55
+ for (const stopCache of stopCaches) {
56
+ i++;
57
+ if (stopCache === null)
58
+ continue;
63
59
  const tripId = tuples[i][1];
64
60
  parsedStopTimeCaches.set(tripId, JSON.parse(stopCache));
65
61
  }
66
- catch (error) {
67
- throw new golemio_errors_1.GeneralError("Cannot parse stop time cache", this.constructor.name, error);
68
- }
62
+ return parsedStopTimeCaches;
63
+ }
64
+ catch (error) {
65
+ throw new golemio_errors_1.GeneralError("Cannot parse stop time cache", this.constructor.name, error);
69
66
  }
70
- return parsedStopTimeCaches;
71
67
  }
72
68
  };
73
69
  exports.PublicStopTimeRepository = PublicStopTimeRepository = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"PublicStopTimeRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/data-access/redis/PublicStopTimeRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,wFAA6F;AAE7F,oGAAiG;AACjG,wEAAqE;AAErE,+DAAuE;AACvE,6EAAwE;AACxE,iEAAwE;AAGjE,IAAM,wBAAwB,sCAA9B,MAAM,wBAAwB;IACjC,YACmD,cAAgC,EAC7C,GAAY;QADC,mBAAc,GAAd,cAAc,CAAkB;QAC7C,QAAG,GAAH,GAAG,CAAS;IAC/C,CAAC;IAEG,KAAK,CAAC,sBAAsB,CAAC,SAAiB,EAAE,UAAkB;QACrE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE;YACpC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACvC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QACvD,IAAI,aAAa,GAAkB,IAAI,CAAC;QAExC,IAAI;YACA,MAAM,GAAG,GAAG,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC;YACzC,aAAa,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,+CAAuC,IAAI,GAAG,EAAE,CAAC,CAAC;SAC7F;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,mDAAmD,GAAG,CAAC,OAAO,EAAE,EACxF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;SACL;QAED,IAAI,aAAa,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,sCAAsC,CAAC,CAAC;YAC9E,OAAO,EAAE,CAAC;SACb;QAED,IAAI;YACA,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SACpC;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,0CAA0C,GAAG,CAAC,OAAO,EAAE,EAC/E,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;SACL;IACL,CAAC;IAEM,KAAK,CAAC,2BAA2B,CAAC,MAA+B;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QAEvD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAqC,CAAC;QAE1E,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,+CAAuC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnG,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAErD,IAAI,CAAC,GAAW,CAAC,CAAC,CAAC;QACnB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAChC,CAAC,EAAE,CAAC;YACJ,IAAI,SAAS,KAAK,IAAI,EAAE;gBACpB,SAAS;aACZ;YAED,IAAI;gBACA,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5B,oBAAoB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAA8B,CAAC,CAAC;aACxF;YAAC,OAAO,KAAK,EAAE;gBACZ,MAAM,IAAI,6BAAY,CAAC,8BAA8B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACxF;SACJ;QAED,OAAO,oBAAoB,CAAC;IAChC,CAAC;CACJ,CAAA;mCAlEY,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,cAAc,CAAC,CAAA;IACrC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCADsC,mCAAgB;GAF1E,wBAAwB,CAkEpC"}
1
+ {"version":3,"file":"PublicStopTimeRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/data-access/redis/PublicStopTimeRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,wFAA6F;AAE7F,oGAAiG;AACjG,wEAAqE;AAErE,+DAAuE;AACvE,6EAAwE;AACxE,iEAAwE;AAGjE,IAAM,wBAAwB,sCAA9B,MAAM,wBAAwB;IACjC,YACmD,cAAgC,EAC7C,GAAY;QADC,mBAAc,GAAd,cAAc,CAAkB;QAC7C,QAAG,GAAH,GAAG,CAAS;IAC/C,CAAC;IAEG,KAAK,CAAC,sBAAsB,CAAC,SAAiB,EAAE,UAAkB;QACrE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE;YACpC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACvC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QACvD,IAAI,aAAa,GAAkB,IAAI,CAAC;QAExC,IAAI;YACA,MAAM,GAAG,GAAG,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC;YACzC,aAAa,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,+CAAuC,IAAI,GAAG,EAAE,CAAC,CAAC;YAE1F,IAAI,aAAa,KAAK,IAAI,EAAE;gBACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,sCAAsC,CAAC,CAAC;gBAC9E,OAAO,EAAE,CAAC;aACb;YAED,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SACpC;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,mDAAmD,GAAG,CAAC,OAAO,EAAE,EACxF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;SACL;IACL,CAAC;IAEM,KAAK,CAAC,2BAA2B,CAAC,MAAkB;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QAEvD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAqC,CAAC;QAE1E,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,oBAAoB,CAAC;QAEhD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,+CAAuC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnG,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAErD,IAAI,CAAC,GAAW,CAAC,CAAC,CAAC;QACnB,IAAI;YACA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;gBAChC,CAAC,EAAE,CAAC;gBACJ,IAAI,SAAS,KAAK,IAAI;oBAAE,SAAS;gBAEjC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5B,oBAAoB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAA8B,CAAC,CAAC;aACxF;YACD,OAAO,oBAAoB,CAAC;SAC/B;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,IAAI,6BAAY,CAAC,8BAA8B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACxF;IACL,CAAC;CACJ,CAAA;mCAzDY,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,cAAc,CAAC,CAAA;IACrC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCADsC,mCAAgB;GAF1E,wBAAwB,CAyDpC"}
@@ -25,6 +25,7 @@ class V2PublicDeparturesRouter extends AbstractRouter_1.AbstractRouter {
25
25
  (0, express_validator_1.query)("limit").optional().isInt({ min: 1, max: 30 }).not().isArray(),
26
26
  (0, express_validator_1.query)("routeShortNames").optional().not().isEmpty({ ignore_whitespace: true }),
27
27
  (0, express_validator_1.query)("minutesAfter").optional().isInt({ min: 1, max: 360 }).not().isArray(),
28
+ (0, express_validator_1.query)("minutesBefore").optional().isInt({ min: -359, max: 30 }).not().isArray(),
28
29
  ], Validation_1.checkErrors,
29
30
  // max-age 3 seconds, stale-while-revalidate 2 seconds
30
31
  this.cacheHeaderMiddleware.getMiddleware(3, 2), this.compressionByDefaultMiddleware.getMiddleware(), this.departureController.getAll);
@@ -1 +1 @@
1
- {"version":3,"file":"V2PublicDeparturesRouter.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/routers/v2/V2PublicDeparturesRouter.ts"],"names":[],"mappings":";;;AAAA,8GAAgH;AAChH,qCAAsD;AACtD,yDAAoD;AACpD,sFAAmF;AAGnF,6EAA2E;AAC3E,+DAAuE;AACvE,+DAA2D;AAC3D,mFAAoE;AACpE,qFAAkF;AAElF,MAAa,wBAAyB,SAAQ,+BAAc;IAMxD;QACI,KAAK,CAAC,wBAAY,CAAC,EAAE,EAAE,wBAAwB,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;QACvB,IAAI,CAAC,qBAAqB,GAAG,sBAAiB,CAAC,OAAO,CAAwB,oBAAc,CAAC,qBAAqB,CAAC,CAAC;QACpH,IAAI,CAAC,8BAA8B,GAAG,sBAAiB,CAAC,OAAO,CAC3D,oBAAc,CAAC,8BAA8B,CAChD,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,qEAAiC,EAAE,CAAC;QACnE,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAES,UAAU;QAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,GAAG,EACH;YACI,IAAA,yBAAK,EAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,uDAA0B,CAAC,QAAQ,CAAC;YACrE,IAAA,yBAAK,EAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YACpE,IAAA,yBAAK,EAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;YAC9E,IAAA,yBAAK,EAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;SAC/E,EACD,wBAAW;QACX,sDAAsD;QACtD,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9C,IAAI,CAAC,8BAA8B,CAAC,aAAa,EAAE,EACnD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAClC,CAAC;IACN,CAAC;CACJ;AAjCD,4DAiCC;AAED,MAAM,wBAAwB,GAAmB,IAAI,wBAAwB,EAAE,CAAC;AACvE,4DAAwB"}
1
+ {"version":3,"file":"V2PublicDeparturesRouter.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/routers/v2/V2PublicDeparturesRouter.ts"],"names":[],"mappings":";;;AAAA,8GAAgH;AAChH,qCAAsD;AACtD,yDAAoD;AACpD,sFAAmF;AAGnF,6EAA2E;AAC3E,+DAAuE;AACvE,+DAA2D;AAC3D,mFAAoE;AACpE,qFAAkF;AAElF,MAAa,wBAAyB,SAAQ,+BAAc;IAMxD;QACI,KAAK,CAAC,wBAAY,CAAC,EAAE,EAAE,wBAAwB,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;QACvB,IAAI,CAAC,qBAAqB,GAAG,sBAAiB,CAAC,OAAO,CAAwB,oBAAc,CAAC,qBAAqB,CAAC,CAAC;QACpH,IAAI,CAAC,8BAA8B,GAAG,sBAAiB,CAAC,OAAO,CAC3D,oBAAc,CAAC,8BAA8B,CAChD,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,qEAAiC,EAAE,CAAC;QACnE,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAES,UAAU;QAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,GAAG,EACH;YACI,IAAA,yBAAK,EAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,uDAA0B,CAAC,QAAQ,CAAC;YACrE,IAAA,yBAAK,EAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YACpE,IAAA,yBAAK,EAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;YAC9E,IAAA,yBAAK,EAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YAC5E,IAAA,yBAAK,EAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;SAClF,EACD,wBAAW;QACX,sDAAsD;QACtD,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9C,IAAI,CAAC,8BAA8B,CAAC,aAAa,EAAE,EACnD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAClC,CAAC;IACN,CAAC;CACJ;AAlCD,4DAkCC;AAED,MAAM,wBAAwB,GAAmB,IAAI,wBAAwB,EAAE,CAAC;AACvE,4DAAwB"}
@@ -10,8 +10,10 @@ export declare class DepartureBoardFacade {
10
10
  private readonly stopTimeRepository;
11
11
  private readonly descriptorRepository;
12
12
  private readonly transformation;
13
+ private static readonly OPEN_MINUTES_IN_PAST;
14
+ private static readonly OPEN_MINUTES_IN_PAST_MS;
13
15
  constructor(departureRepository: IGtfsDepartureRepository, tripRepository: IVehiclePositionsRepository, stopTimeRepository: IStopTimeRepository, descriptorRepository: VehicleDescriptorCachedRepository);
14
- getAll(stopIds: Set<IDepartureBoardsStopIdGroups>, limit: number, routeShortNames: string[] | null, minutesAfter: number): Promise<PublicApiDepartureBoardGroup[] | null>;
16
+ getAll(stopIds: Set<IDepartureBoardsStopIdGroups>, limit: number, routeShortNames: string[] | null, minutesAfter: number, minutesBefore: number): Promise<PublicApiDepartureBoardGroup[] | null>;
15
17
  private handleStopGroupDepartures;
16
18
  private duplicateDeparturesWithDifferentVehicleIds;
17
19
  private sortStopGroupsByPriority;
@@ -14,10 +14,10 @@ class DepartureBoardFacade {
14
14
  this.descriptorRepository = descriptorRepository;
15
15
  this.transformation = new PublicDepartureTransformation_1.PublicDepartureTransformation();
16
16
  }
17
- async getAll(stopIds, limit, routeShortNames, minutesAfter) {
17
+ async getAll(stopIds, limit, routeShortNames, minutesAfter, minutesBefore) {
18
18
  let output;
19
19
  const sortedStopGroups = this.sortStopGroupsByPriority(stopIds);
20
- const promises = sortedStopGroups.map(async (stopGroup) => await this.handleStopGroupDepartures(stopGroup, limit, routeShortNames, minutesAfter));
20
+ const promises = sortedStopGroups.map(async (stopGroup) => await this.handleStopGroupDepartures(stopGroup, limit, routeShortNames, minutesAfter, minutesBefore));
21
21
  try {
22
22
  output = await Promise.all(promises);
23
23
  }
@@ -41,10 +41,11 @@ class DepartureBoardFacade {
41
41
  });
42
42
  }
43
43
  }
44
- async handleStopGroupDepartures(stopGroup, limit, routeShortNames, minutesAfter) {
44
+ async handleStopGroupDepartures(stopGroup, limit, routeShortNames, minutesAfter, minutesBefore) {
45
45
  let outputGroup = [];
46
46
  const spanDepartures = (0, trace_provider_1.createChildSpan)(`Departures.${stopGroup.priority}.getPublicDepartureCache`);
47
- const departures = await this.departureRepository.getPublicGtfsDepartureCache(stopGroup.stopIds, minutesAfter);
47
+ const timeFrom = new Date(Date.now() - minutesBefore * 60 * 1000);
48
+ const departures = await this.departureRepository.getPublicGtfsDepartureCache(stopGroup.stopIds, minutesAfter + DepartureBoardFacade.OPEN_MINUTES_IN_PAST, new Date(timeFrom.getTime() - DepartureBoardFacade.OPEN_MINUTES_IN_PAST_MS));
48
49
  spanDepartures?.end();
49
50
  if (departures.length === 0) {
50
51
  return null;
@@ -76,9 +77,7 @@ class DepartureBoardFacade {
76
77
  try {
77
78
  outputGroup = DepartureGroupRefiner_1.DepartureGroupRefiner.filterDeparturesByRouteShortNames(outputGroup, routeShortNames);
78
79
  outputGroup = DepartureGroupRefiner_1.DepartureGroupRefiner.sortDeparturesByPredictedTimestamp(outputGroup);
79
- // minutesBefore is set to 0 because we want to display departures that are already happening
80
- // this may change in the future
81
- outputGroup = DepartureGroupRefiner_1.DepartureGroupRefiner.removeDeparturesOutsideTimeRange(outputGroup, 0, minutesAfter).slice(0, limit);
80
+ outputGroup = DepartureGroupRefiner_1.DepartureGroupRefiner.removeDeparturesOutsideTimeRange(outputGroup, minutesBefore, minutesAfter).slice(0, limit);
82
81
  }
83
82
  catch (err) {
84
83
  throw new golemio_errors_1.GeneralError("Error while manipulating departures", this.constructor.name, err, 500);
@@ -128,4 +127,6 @@ class DepartureBoardFacade {
128
127
  }
129
128
  }
130
129
  exports.DepartureBoardFacade = DepartureBoardFacade;
130
+ DepartureBoardFacade.OPEN_MINUTES_IN_PAST = 30;
131
+ DepartureBoardFacade.OPEN_MINUTES_IN_PAST_MS = DepartureBoardFacade.OPEN_MINUTES_IN_PAST * 60 * 1000;
131
132
  //# sourceMappingURL=DepartureBoardFacade.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DepartureBoardFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/service/facade/DepartureBoardFacade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DepartureBoardFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/service/facade/DepartureBoardFacade.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ const express_1 = require("@golemio/core/dist/shared/express");
20
20
  const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
21
21
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
22
22
  const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
23
+ const express_validator_2 = require("@golemio/core/dist/shared/express-validator");
23
24
  class V2GTFSRouter extends AbstractRouter_1.AbstractRouter {
24
25
  constructor() {
25
26
  super(constants_1.RouteVersion.v2, "gtfs");
@@ -44,10 +45,11 @@ class V2GTFSRouter extends AbstractRouter_1.AbstractRouter {
44
45
  ];
45
46
  this.GetAllServices = async (req, res, next) => {
46
47
  try {
48
+ const queryData = (0, express_validator_2.matchedData)(req);
47
49
  const data = await this.serviceModel.GetAll({
48
- date: req.query.date || undefined,
49
- limit: Number(req.query.limit) || undefined,
50
- offset: Number(req.query.offset) || undefined,
50
+ date: queryData.date || undefined,
51
+ limit: Number(queryData.limit) || undefined,
52
+ offset: Number(queryData.offset) || undefined,
51
53
  });
52
54
  res.status(200).send(data);
53
55
  }
@@ -57,14 +59,15 @@ class V2GTFSRouter extends AbstractRouter_1.AbstractRouter {
57
59
  };
58
60
  this.GetAllStopTimes = async (req, res, next) => {
59
61
  try {
62
+ const queryData = (0, express_validator_2.matchedData)(req);
60
63
  const data = await this.stopTimeModel.GetAll({
61
- date: req.query.date || undefined,
62
- from: req.query.from || undefined,
63
- limit: Number(req.query.limit) || undefined,
64
- offset: Number(req.query.offset) || undefined,
65
- stop: !!req.query.includeStop,
64
+ date: queryData.date || undefined,
65
+ from: queryData.from || undefined,
66
+ limit: Number(queryData.limit) || undefined,
67
+ offset: Number(queryData.offset) || undefined,
68
+ stop: !!queryData.includeStop,
66
69
  stopId: req.params.stopId,
67
- to: req.query.to || undefined,
70
+ to: queryData.to || undefined,
68
71
  });
69
72
  res.status(200).send(data);
70
73
  }
@@ -74,11 +77,12 @@ class V2GTFSRouter extends AbstractRouter_1.AbstractRouter {
74
77
  };
75
78
  this.GetAllTrips = async (req, res, next) => {
76
79
  try {
80
+ const queryData = (0, express_validator_2.matchedData)(req);
77
81
  const data = await this.tripModel.GetAll({
78
- date: req.query.date || undefined,
79
- limit: Number(req.query.limit) || undefined,
80
- offset: Number(req.query.offset) || undefined,
81
- stopId: req.query.stopId,
82
+ date: queryData.date || undefined,
83
+ limit: Number(queryData.limit) || undefined,
84
+ offset: Number(queryData.offset) || undefined,
85
+ stopId: queryData.stopId,
82
86
  });
83
87
  res.status(200).send(data);
84
88
  }
@@ -88,14 +92,15 @@ class V2GTFSRouter extends AbstractRouter_1.AbstractRouter {
88
92
  };
89
93
  this.GetOneTrip = async (req, res, next) => {
90
94
  try {
95
+ const queryData = (0, express_validator_2.matchedData)(req);
91
96
  const id = req.params.id;
92
97
  const data = await this.tripModel.GetOne(id, {
93
- date: req.query.date || undefined,
94
- route: !!req.query.includeRoute,
95
- service: !!req.query.includeService,
96
- shapes: !!req.query.includeShapes,
97
- stopTimes: !!req.query.includeStopTimes,
98
- stops: !!req.query.includeStops,
98
+ date: queryData.date || undefined,
99
+ route: !!queryData.includeRoute,
100
+ service: !!queryData.includeService,
101
+ shapes: !!queryData.includeShapes,
102
+ stopTimes: !!queryData.includeStopTimes,
103
+ stops: !!queryData.includeStops,
99
104
  });
100
105
  if (!data) {
101
106
  throw new golemio_errors_1.GeneralError("not_found", "GTFSRouter", undefined, 404);
@@ -107,21 +112,22 @@ class V2GTFSRouter extends AbstractRouter_1.AbstractRouter {
107
112
  }
108
113
  };
109
114
  this.GetAllStops = async (req, res, next) => {
110
- const names = shared_1.RopidRouterUtils.convertParamToArray(req.query.names);
111
- const aswIds = shared_1.RopidRouterUtils.convertParamToArray(req.query.aswIds);
112
- const cisIds = shared_1.RopidRouterUtils.convertParamToArray(req.query.cisIds);
113
- const gtfsIds = shared_1.RopidRouterUtils.convertParamToArray(req.query.ids);
115
+ const queryData = (0, express_validator_2.matchedData)(req);
116
+ const names = shared_1.RopidRouterUtils.convertParamToArray(queryData.names);
117
+ const aswIds = shared_1.RopidRouterUtils.convertParamToArray(queryData.aswIds);
118
+ const cisIds = shared_1.RopidRouterUtils.convertParamToArray(queryData.cisIds);
119
+ const gtfsIds = shared_1.RopidRouterUtils.convertParamToArray(queryData.ids);
114
120
  try {
115
- const coords = await (0, Geo_1.parseCoordinates)(req.query.latlng, req.query.range);
121
+ const coords = await (0, Geo_1.parseCoordinates)(queryData.latlng, queryData.range);
116
122
  const data = await this.stopModel.GetAll({
117
123
  aswIds,
118
124
  cisIds,
119
125
  gtfsIds,
120
126
  lat: coords.lat,
121
- limit: Number(req.query.limit) || undefined,
127
+ limit: Number(queryData.limit) || undefined,
122
128
  lng: coords.lng,
123
129
  names,
124
- offset: Number(req.query.offset) || undefined,
130
+ offset: Number(queryData.offset) || undefined,
125
131
  range: coords.range,
126
132
  });
127
133
  res.status(200).send(data);
@@ -145,9 +151,10 @@ class V2GTFSRouter extends AbstractRouter_1.AbstractRouter {
145
151
  };
146
152
  this.GetAllRoutes = async (req, res, next) => {
147
153
  try {
154
+ const queryData = (0, express_validator_2.matchedData)(req);
148
155
  const data = await this.routeModel.GetAll({
149
- limit: Number(req.query.limit) || undefined,
150
- offset: Number(req.query.offset) || undefined,
156
+ limit: Number(queryData.limit) || undefined,
157
+ offset: Number(queryData.offset) || undefined,
151
158
  });
152
159
  res.status(200).send(data);
153
160
  }
@@ -170,10 +177,11 @@ class V2GTFSRouter extends AbstractRouter_1.AbstractRouter {
170
177
  };
171
178
  this.GetAllShapes = async (req, res, next) => {
172
179
  try {
180
+ const queryData = (0, express_validator_2.matchedData)(req);
173
181
  const data = await this.shapeModel.GetAll({
174
182
  id: req.params.id,
175
- limit: Number(req.query.limit) || undefined,
176
- offset: Number(req.query.offset) || undefined,
183
+ limit: Number(queryData.limit) || undefined,
184
+ offset: Number(queryData.offset) || undefined,
177
185
  });
178
186
  if (!data) {
179
187
  throw new golemio_errors_1.GeneralError("not_found", "GTFSRouter", undefined, 404);
@@ -198,17 +206,17 @@ class V2GTFSRouter extends AbstractRouter_1.AbstractRouter {
198
206
  this.initServicesEndpoints(maxAge, staleWhileRevalidate);
199
207
  };
200
208
  this.initRoutesEndpoints = (maxAge, staleWhileRevalidate) => {
201
- this.router.get("/routes", Validation_1.pagination, Validation_1.checkErrors, (0, Validation_1.paginationLimitMiddleware)("GTFSRouter"), this.cacheHeaderMiddleware.getMiddleware(maxAge, staleWhileRevalidate), this.GetAllRoutes);
209
+ this.router.get("/routes", (0, Validation_1.paginationLimitMiddleware)("GTFSRouter"), Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(maxAge, staleWhileRevalidate), this.GetAllRoutes);
202
210
  this.router.get("/routes/:id", (0, express_validator_1.param)("id").exists(), Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(maxAge, staleWhileRevalidate), this.GetOneRoute);
203
211
  };
204
212
  this.initServicesEndpoints = (maxAge, staleWhileRevalidate) => {
205
- this.router.get("/services", (0, express_validator_1.query)("date").optional().isISO8601().custom(ParamValidatorManager_1.ParamValidatorManager.getDateValidator()).not().isArray(), Validation_1.pagination, Validation_1.checkErrors, (0, Validation_1.paginationLimitMiddleware)("GTFSRouter"), this.cacheHeaderMiddleware.getMiddleware(maxAge, staleWhileRevalidate), this.GetAllServices);
213
+ this.router.get("/services", (0, express_validator_1.query)("date").optional().isISO8601().custom(ParamValidatorManager_1.ParamValidatorManager.getDateValidator()).not().isArray(), (0, Validation_1.paginationLimitMiddleware)("GTFSRouter"), Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(maxAge, staleWhileRevalidate), this.GetAllServices);
206
214
  };
207
215
  this.initShapesEndpoints = (maxAge, staleWhileRevalidate) => {
208
- this.router.get("/shapes/:id", Validation_1.pagination, Validation_1.checkErrors, (0, Validation_1.paginationLimitMiddleware)("GTFSRouter"), (0, express_validator_1.param)("id").exists(), this.cacheHeaderMiddleware.getMiddleware(maxAge, staleWhileRevalidate), this.GetAllShapes);
216
+ this.router.get("/shapes/:id", (0, Validation_1.paginationLimitMiddleware)("GTFSRouter"), Validation_1.checkErrors, (0, express_validator_1.param)("id").exists(), this.cacheHeaderMiddleware.getMiddleware(maxAge, staleWhileRevalidate), this.GetAllShapes);
209
217
  };
210
218
  this.initTripsEndpoints = (maxAge, staleWhileRevalidate) => {
211
- this.router.get("/trips", (0, express_validator_1.query)("stopId").optional().not().isArray(), this.tripInclusions, Validation_1.pagination, Validation_1.checkErrors, (0, Validation_1.paginationLimitMiddleware)("GTFSRouter"), this.cacheHeaderMiddleware.getMiddleware(maxAge, staleWhileRevalidate), this.GetAllTrips);
219
+ this.router.get("/trips", (0, express_validator_1.query)("stopId").optional().not().isArray(), this.tripInclusions, (0, Validation_1.paginationLimitMiddleware)("GTFSRouter"), Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(maxAge, staleWhileRevalidate), this.GetAllTrips);
212
220
  this.router.get("/trips/:id", (0, express_validator_1.param)("id").exists(), this.tripInclusions, Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(maxAge, staleWhileRevalidate), this.GetOneTrip);
213
221
  };
214
222
  this.initStopsEndpoints = (maxAge, staleWhileRevalidate) => {
@@ -219,14 +227,15 @@ class V2GTFSRouter extends AbstractRouter_1.AbstractRouter {
219
227
  (0, express_validator_1.query)("aswIds").optional().not().isEmpty({ ignore_whitespace: true }),
220
228
  (0, express_validator_1.query)("cisIds").optional().isInt(),
221
229
  (0, express_validator_1.query)("ids").optional().not().isEmpty({ ignore_whitespace: true }),
222
- ], Validation_1.pagination, Validation_1.checkErrors, (0, Validation_1.paginationLimitMiddleware)("GTFSRouter"), this.cacheHeaderMiddleware.getMiddleware(maxAge, staleWhileRevalidate), this.GetAllStops);
230
+ ], (0, Validation_1.paginationLimitMiddleware)("GTFSRouter"), Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(maxAge, staleWhileRevalidate), this.GetAllStops);
223
231
  this.router.get("/stops/:id", [(0, express_validator_1.param)("id").exists()], Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(maxAge, staleWhileRevalidate), this.GetOneStop);
224
232
  };
225
233
  this.initStopTimesEndpoints = (maxAge, staleWhileRevalidate) => {
226
- this.router.get("/stoptimes/:stopId", this.stopTimesHandlers, Validation_1.pagination, (0, Validation_1.paginationLimitMiddleware)("GTFSRouter"), Validation_1.checkErrors, (req, res, next) => {
227
- if (req.query.from &&
228
- req.query.to &&
229
- (0, moment_timezone_1.default)(req.query.from, "H:mm:ss").isAfter((0, moment_timezone_1.default)(req.query.to, "H:mm:ss"))) {
234
+ this.router.get("/stoptimes/:stopId", this.stopTimesHandlers, (0, Validation_1.paginationLimitMiddleware)("GTFSRouter"), Validation_1.checkErrors, (req, res, next) => {
235
+ const queryData = (0, express_validator_2.matchedData)(req);
236
+ if (queryData.from &&
237
+ queryData.to &&
238
+ (0, moment_timezone_1.default)(queryData.from, "H:mm:ss").isAfter((0, moment_timezone_1.default)(queryData.to, "H:mm:ss"))) {
230
239
  throw new golemio_errors_1.GeneralError("Validation error", "GTFSRouter", new Error("'to' cannot be later than 'from'"), 400);
231
240
  }
232
241
  return next();
@@ -1 +1 @@
1
- {"version":3,"file":"V2GTFSRouter.js","sourceRoot":"","sources":["../../../../../src/output-gateway/ropid-gtfs/routers/v2/V2GTFSRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"V2GTFSRouter.js","sourceRoot":"","sources":["../../../../../src/output-gateway/ropid-gtfs/routers/v2/V2GTFSRouter.ts"],"names":[],"mappings":"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"}