@golemio/pid 5.7.2 → 5.7.3-dev.2378110705

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 (112) hide show
  1. package/dist/const.d.ts +0 -1
  2. package/dist/const.js +1 -2
  3. package/dist/const.js.map +1 -1
  4. package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.d.ts +14 -0
  5. package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.js +47 -0
  6. package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.js.map +1 -0
  7. package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.d.ts +3 -2
  8. package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.js +4 -2
  9. package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.js.map +1 -1
  10. package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.d.ts +9 -0
  11. package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.js +47 -0
  12. package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.js.map +1 -0
  13. package/dist/integration-engine/ropid-gtfs/ioc/Di.js +6 -0
  14. package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
  15. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +3 -0
  16. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +3 -0
  17. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
  18. package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js +1 -0
  19. package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js.map +1 -1
  20. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/EnsureCacheTask.d.ts +9 -0
  21. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/EnsureCacheTask.js +49 -0
  22. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/EnsureCacheTask.js.map +1 -0
  23. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.d.ts +6 -1
  24. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.js +39 -10
  25. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.js.map +1 -1
  26. package/dist/integration-engine/vehicle-positions/ioc/Di.js +2 -0
  27. package/dist/integration-engine/vehicle-positions/ioc/Di.js.map +1 -1
  28. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.d.ts +1 -0
  29. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js +1 -0
  30. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js.map +1 -1
  31. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.d.ts +10 -5
  32. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js +37 -11
  33. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js.map +1 -1
  34. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.d.ts +4 -1
  35. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js +22 -9
  36. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js.map +1 -1
  37. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.d.ts +7 -3
  38. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js +28 -10
  39. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js.map +1 -1
  40. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/interfaces/ICommonMessageFilter.d.ts +1 -1
  41. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js +1 -1
  42. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js.map +1 -1
  43. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js +1 -1
  44. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js.map +1 -1
  45. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/IUpdateRunsGtfsTripInput.d.ts +6 -0
  46. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.js +3 -2
  47. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.js.map +1 -1
  48. package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.js +0 -1
  49. package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.js.map +1 -1
  50. package/dist/output-gateway/public/service/facade/DetailedTripFacade.js +1 -1
  51. package/dist/output-gateway/public/service/facade/DetailedTripFacade.js.map +1 -1
  52. package/dist/output-gateway/public/service/helpers/trip-scope/strategy/ShapesTripScopeHandler.js +1 -1
  53. package/dist/output-gateway/public/service/helpers/trip-scope/strategy/ShapesTripScopeHandler.js.map +1 -1
  54. package/dist/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.js +1 -1
  55. package/dist/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.js.map +1 -1
  56. package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.d.ts +10 -3
  57. package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.js +30 -7
  58. package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.js.map +1 -1
  59. package/dist/output-gateway/vehicle-positions/data-access/TripRepository.d.ts +7 -3
  60. package/dist/output-gateway/vehicle-positions/data-access/TripRepository.js +30 -7
  61. package/dist/output-gateway/vehicle-positions/data-access/TripRepository.js.map +1 -1
  62. package/dist/output-gateway/vehicle-positions/data-access/VehicleDescriptorRepository.d.ts +10 -3
  63. package/dist/output-gateway/vehicle-positions/data-access/VehicleDescriptorRepository.js +30 -7
  64. package/dist/output-gateway/vehicle-positions/data-access/VehicleDescriptorRepository.js.map +1 -1
  65. package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.d.ts +10 -3
  66. package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.js +30 -7
  67. package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.js.map +1 -1
  68. package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.d.ts +10 -0
  69. package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.js +45 -0
  70. package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.js.map +1 -0
  71. package/dist/output-gateway/vehicle-positions/data-access/index.js +9 -18
  72. package/dist/output-gateway/vehicle-positions/data-access/index.js.map +1 -1
  73. package/dist/output-gateway/vehicle-positions/data-access/interfaces/ITripWithPositionRepository.d.ts +3 -2
  74. package/dist/output-gateway/vehicle-positions/data-access/interfaces/IVPRepositoryInstances.d.ts +6 -6
  75. package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.d.ts +7 -3
  76. package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.js +30 -7
  77. package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.js.map +1 -1
  78. package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.d.ts +17 -7
  79. package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.js +112 -42
  80. package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.js.map +1 -1
  81. package/dist/output-gateway/vehicle-positions/ioc/Di.d.ts +3 -0
  82. package/dist/output-gateway/vehicle-positions/ioc/Di.js +23 -0
  83. package/dist/output-gateway/vehicle-positions/ioc/Di.js.map +1 -0
  84. package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.d.ts +9 -0
  85. package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.js +15 -0
  86. package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.js.map +1 -0
  87. package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.d.ts +3 -0
  88. package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.js +40 -0
  89. package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.js.map +1 -0
  90. package/dist/schema-definitions/datasources/static-data/index.d.ts +1 -0
  91. package/dist/schema-definitions/datasources/static-data/index.js +1 -0
  92. package/dist/schema-definitions/datasources/static-data/index.js.map +1 -1
  93. package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.d.ts +35 -0
  94. package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.js +18 -0
  95. package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.js.map +1 -0
  96. package/dist/schema-definitions/datasources/static-data/interfaces/index.d.ts +1 -0
  97. package/dist/schema-definitions/datasources/static-data/interfaces/index.js +1 -0
  98. package/dist/schema-definitions/datasources/static-data/interfaces/index.js.map +1 -1
  99. package/dist/schema-definitions/ropid-gtfs/redis/const.d.ts +2 -0
  100. package/dist/schema-definitions/ropid-gtfs/redis/const.js +3 -1
  101. package/dist/schema-definitions/ropid-gtfs/redis/const.js.map +1 -1
  102. package/dist/schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto.d.ts +6 -0
  103. package/docs/asyncapi.yaml +17 -2
  104. package/docs/cache/types/redis.md +58 -2
  105. package/docs/examples/not_public_vehicles.json +9 -0
  106. package/docs/implementation_documentation.md +116 -3
  107. package/docs/jis/index.md +17 -0
  108. package/docs/processing/input_realtime_data/http_mpvnet.md +21 -0
  109. package/docs/processing/state_position_tracking/http_mpvnet.md +1 -0
  110. package/docs/processing/state_position_tracking/tcp_dpp_common.md +1 -0
  111. package/docs/processing/transferboards_filtering.md +312 -0
  112. package/package.json +8 -5
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VPContainerToken = void 0;
4
4
  const VPContainerToken = {
5
5
  //#region Vehicle Positions
6
+ NotPublicVehiclesRedisRepository: Symbol("NotPublicVehiclesRedisRepository"),
6
7
  TripRepository: Symbol("TripRepository"),
7
8
  PublicStopTimeRepository: Symbol("PublicStopTimeRepository"),
8
9
  PublicApiCacheRepository: Symbol("PublicApiCacheRepository"),
@@ -1 +1 @@
1
- {"version":3,"file":"VPContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/ioc/VPContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,gBAAgB,GAAG;IACrB,2BAA2B;IAC3B,cAAc,EAAE,MAAM,CAAC,gBAAgB,CAAC;IACxC,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,0BAA0B,EAAE,MAAM,CAAC,4BAA4B,CAAC;IAChE,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,qBAAqB,EAAE,MAAM,CAAC,uBAAuB,CAAC;IACtD,0BAA0B,EAAE,MAAM,CAAC,4BAA4B,CAAC;IAChE,8BAA8B,EAAE,MAAM,CAAC,gCAAgC,CAAC;IACxE,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC;IAC5C,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,YAAY;IAEZ,cAAc;IACd,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,8BAA8B,EAAE,MAAM,CAAC,gCAAgC,CAAC;IACxE,iCAAiC,EAAE,MAAM,CAAC,mCAAmC,CAAC;IAC9E,qCAAqC,EAAE,MAAM,CAAC,uCAAuC,CAAC;IACtF,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC;IAC5C,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,CAAC;IAC9C,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC;IAC5C,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,CAAC;IAC9C,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,qBAAqB,EAAE,MAAM,CAAC,uBAAuB,CAAC;IACtD,0BAA0B,EAAE,MAAM,CAAC,4BAA4B,CAAC;IAChE,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,qBAAqB,EAAE,MAAM,CAAC,uBAAuB,CAAC;IACtD,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,iCAAiC,EAAE,MAAM,CAAC,mCAAmC,CAAC;IAC9E,+BAA+B,EAAE,MAAM,CAAC,iCAAiC,CAAC;IAC1E,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAE5E,YAAY;IAEZ,6BAA6B;IAC7B,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC;IAC5C,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC;IACxD,cAAc,EAAE,MAAM,CAAC,gBAAgB,CAAC;IACxC,YAAY;IAEZ,2BAA2B;IAE3B,oBAAoB;IACpB,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,0BAA0B,EAAE,MAAM,CAAC,4BAA4B,CAAC;IAChE,YAAY;IAEZ,iBAAiB;IACjB,qBAAqB,EAAE,MAAM,CAAC,uBAAuB,CAAC;IACtD,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAChD,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,CAAC;IAC9C,YAAY;IAEZ,YAAY;CACf,CAAC;AAEO,4CAAgB"}
1
+ {"version":3,"file":"VPContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/ioc/VPContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,gBAAgB,GAAG;IACrB,2BAA2B;IAC3B,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,cAAc,EAAE,MAAM,CAAC,gBAAgB,CAAC;IACxC,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,0BAA0B,EAAE,MAAM,CAAC,4BAA4B,CAAC;IAChE,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,qBAAqB,EAAE,MAAM,CAAC,uBAAuB,CAAC;IACtD,0BAA0B,EAAE,MAAM,CAAC,4BAA4B,CAAC;IAChE,8BAA8B,EAAE,MAAM,CAAC,gCAAgC,CAAC;IACxE,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC;IAC5C,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,YAAY;IAEZ,cAAc;IACd,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,8BAA8B,EAAE,MAAM,CAAC,gCAAgC,CAAC;IACxE,iCAAiC,EAAE,MAAM,CAAC,mCAAmC,CAAC;IAC9E,qCAAqC,EAAE,MAAM,CAAC,uCAAuC,CAAC;IACtF,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC;IAC5C,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,CAAC;IAC9C,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC;IAC5C,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,CAAC;IAC9C,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,qBAAqB,EAAE,MAAM,CAAC,uBAAuB,CAAC;IACtD,0BAA0B,EAAE,MAAM,CAAC,4BAA4B,CAAC;IAChE,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,qBAAqB,EAAE,MAAM,CAAC,uBAAuB,CAAC;IACtD,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,iCAAiC,EAAE,MAAM,CAAC,mCAAmC,CAAC;IAC9E,+BAA+B,EAAE,MAAM,CAAC,iCAAiC,CAAC;IAC1E,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAE5E,YAAY;IAEZ,6BAA6B;IAC7B,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC;IAC5C,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC;IACxD,cAAc,EAAE,MAAM,CAAC,gBAAgB,CAAC;IACxC,YAAY;IAEZ,2BAA2B;IAE3B,oBAAoB;IACpB,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,0BAA0B,EAAE,MAAM,CAAC,4BAA4B,CAAC;IAChE,YAAY;IAEZ,iBAAiB;IACjB,qBAAqB,EAAE,MAAM,CAAC,uBAAuB,CAAC;IACtD,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAChD,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,CAAC;IAC9C,YAAY;IAEZ,YAAY;CACf,CAAC;AAEO,4CAAgB"}
@@ -1,4 +1,5 @@
1
1
  import { ICommonRunWithMessageDto } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto";
2
+ import { NotPublicVehiclesRedisRepository } from "../../../../ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository";
2
3
  import { ILogger } from "@golemio/core/dist/helpers/logger";
3
4
  import { ICommonMessageFilter } from "./interfaces/ICommonMessageFilter";
4
5
  import { TimestampValidator } from "./TimestampValidator";
@@ -7,14 +8,18 @@ export declare class BusMessageFilter implements ICommonMessageFilter {
7
8
  private logger;
8
9
  private timestampValidator;
9
10
  private config;
11
+ private notPublicVehiclesRepository;
10
12
  private dppTestingBuses;
11
- constructor(logger: ILogger, timestampValidator: TimestampValidator, config: ISimpleConfig);
13
+ constructor(logger: ILogger, timestampValidator: TimestampValidator, config: ISimpleConfig, notPublicVehiclesRepository: NotPublicVehiclesRedisRepository);
12
14
  /**
13
15
  * Yield messages that are valid for processing (filter out internal bus lines and testing buses)
14
- * - route id is a string of length 3 or more
15
- * - route id is a number in range of bus and trolleybus lines
16
- * - route id >= 100 (bus) [50, 69] (trolleybus)
16
+ * - route id is a string of length 3 or more (bus)
17
+ * - route id is a number in range of trolleybus lines [50, 69]
18
+ * - OR registration number is in not-public vehicles whitelist (e.g., metro replacement buses)
19
+ * - filters out testing buses
20
+ *
21
+ * Sets isNotPublic flag on messages to avoid duplicate whitelist checks in processor
17
22
  */
18
- yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): Generator<ICommonRunWithMessageDto>;
23
+ yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): AsyncGenerator<ICommonRunWithMessageDto>;
19
24
  private isTestingBus;
20
25
  }
@@ -13,6 +13,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.BusMessageFilter = void 0;
16
+ const NotPublicVehiclesRedisRepository_1 = require("../../../../ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository");
16
17
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
17
18
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
18
19
  const VPContainerToken_1 = require("../../../ioc/VPContainerToken");
@@ -21,46 +22,70 @@ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
21
22
  const TROLLEYBUS_ROUTE_ID_MIN = 50;
22
23
  const TROLLEYBUS_ROUTE_ID_MAX = 69;
23
24
  let BusMessageFilter = class BusMessageFilter {
24
- constructor(logger, timestampValidator, config) {
25
+ constructor(logger, timestampValidator, config, notPublicVehiclesRepository) {
25
26
  this.logger = logger;
26
27
  this.timestampValidator = timestampValidator;
27
28
  this.config = config;
28
- this.dppTestingBuses = this.config.getValue("module.pid.vehicle-positions.dppTestingBuses.*", []);
29
+ this.notPublicVehiclesRepository = notPublicVehiclesRepository;
30
+ this.dppTestingBuses = new Set(this.config.getValue("module.pid.vehicle-positions.dppTestingBuses.*", []));
29
31
  }
30
32
  /**
31
33
  * Yield messages that are valid for processing (filter out internal bus lines and testing buses)
32
- * - route id is a string of length 3 or more
33
- * - route id is a number in range of bus and trolleybus lines
34
- * - route id >= 100 (bus) [50, 69] (trolleybus)
34
+ * - route id is a string of length 3 or more (bus)
35
+ * - route id is a number in range of trolleybus lines [50, 69]
36
+ * - OR registration number is in not-public vehicles whitelist (e.g., metro replacement buses)
37
+ * - filters out testing buses
38
+ *
39
+ * Sets isNotPublic flag on messages to avoid duplicate whitelist checks in processor
35
40
  */
36
- *yieldFilteredMessages(messages, timestamp) {
41
+ async *yieldFilteredMessages(messages, timestamp) {
42
+ // Load config once for the entire batch to avoid multiple Redis calls
43
+ const { road: { registrationNumbers }, routeIds, } = await this.notPublicVehiclesRepository.getConfig();
44
+ const whitelistedRegistrationNumbers = new Set(registrationNumbers);
45
+ const whitelistedRouteNames = new Set(routeIds);
37
46
  for (const message of messages) {
38
47
  const { run } = message;
39
48
  if (!this.timestampValidator.isTimestampValid(timestamp, message.run_message.actual_stop_timestamp_real.toString())) {
40
49
  this.logger.error(new golemio_errors_1.GeneralError("Message timestamp 'takt' of value" +
41
- message.run_message.actual_stop_timestamp_real.toISOString() +
42
- `is not valid for line ${message.run.line_short_name}, run ${message.run.run_number}`, this.constructor.name, undefined, undefined, "pid"));
50
+ ` '${message.run_message.actual_stop_timestamp_real.toISOString()}'` +
51
+ ` is not valid for line ${message.run.line_short_name}, run ${message.run.run_number}`, this.constructor.name, undefined, undefined, "pid"));
43
52
  continue;
44
53
  }
54
+ // Check if this is a not-public vehicle
55
+ // - Whitelisted registration number (e.g., metro replacement bus)
56
+ // - Whitelisted route name (e.g., ad-hoc routes like X1, X2, NAD)
57
+ const isNotPublicByRegistration = whitelistedRegistrationNumbers.has(run.registration_number);
58
+ const isNotPublicByRouteName = whitelistedRouteNames.has(run.line_short_name);
59
+ const isNotPublicVehicle = isNotPublicByRegistration || isNotPublicByRouteName;
60
+ // Allow if whitelisted by registration number or route name (skip other validation)
61
+ if (isNotPublicVehicle) {
62
+ message.isNotPublic = true; // ← Set flag
63
+ yield message;
64
+ continue;
65
+ }
66
+ // Regular bus (route_id length > 2)
45
67
  if (run.route_id.length > 2) {
46
68
  if (this.isTestingBus(message.run.registration_number)) {
47
- this.logger.info(`Testing bus ${message.run.registration_number} was filterd out`);
69
+ this.logger.info(`Testing bus ${message.run.registration_number} was filtered out`);
48
70
  continue;
49
71
  }
72
+ message.isNotPublic = false; // ← Set flag (scheduled bus)
50
73
  yield message;
51
74
  continue;
52
75
  }
76
+ // Trolleybus (route_id in range [50-69])
53
77
  const routeId = Number.parseInt(run.route_id);
54
78
  if (Number.isNaN(routeId) || routeId < TROLLEYBUS_ROUTE_ID_MIN || routeId > TROLLEYBUS_ROUTE_ID_MAX) {
55
79
  this.logger.info(`${this.constructor.name}: route id ${routeId} is invalid or out of range`);
56
80
  this.logger.debug(message);
57
81
  continue;
58
82
  }
83
+ message.isNotPublic = false; // ← Set flag (scheduled trolleybus)
59
84
  yield message;
60
85
  }
61
86
  }
62
87
  isTestingBus(reqNumber) {
63
- return this.dppTestingBuses.includes(reqNumber);
88
+ return this.dppTestingBuses.has(reqNumber);
64
89
  }
65
90
  };
66
91
  exports.BusMessageFilter = BusMessageFilter;
@@ -69,6 +94,7 @@ exports.BusMessageFilter = BusMessageFilter = __decorate([
69
94
  __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
70
95
  __param(1, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.TimestampValidator)),
71
96
  __param(2, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
72
- __metadata("design:paramtypes", [Object, TimestampValidator_1.TimestampValidator, Object])
97
+ __param(3, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.NotPublicVehiclesRedisRepository)),
98
+ __metadata("design:paramtypes", [Object, TimestampValidator_1.TimestampValidator, Object, NotPublicVehiclesRedisRepository_1.NotPublicVehiclesRedisRepository])
73
99
  ], BusMessageFilter);
74
100
  //# sourceMappingURL=BusMessageFilter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BusMessageFilter.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,wEAAqE;AAErE,iEAAwE;AAExE,oEAA8E;AAC9E,6DAA0D;AAC1D,6EAAwE;AAGxE,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAG5B,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAEzB,YACsC,MAAe,EACI,kBAAsC,EACnD,MAAqB;QAF3B,WAAM,GAAN,MAAM,CAAS;QACI,uBAAkB,GAAlB,kBAAkB,CAAoB;QACnD,WAAM,GAAN,MAAM,CAAe;QAE7D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gDAAgD,EAAE,EAAE,CAAa,CAAC;IAClH,CAAC;IAED;;;;;OAKG;IACI,CAAC,qBAAqB,CAAC,QAAoC,EAAE,SAAiB;QACjF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;YAExB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;gBAClH,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,mCAAmC;oBAC/B,OAAO,CAAC,WAAW,CAAC,0BAA0B,CAAC,WAAW,EAAE;oBAC5D,yBAAyB,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EACzF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,SAAS,EACT,KAAK,CACR,CACJ,CAAC;gBACF,SAAS;YACb,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,GAAG,CAAC,mBAAmB,kBAAkB,CAAC,CAAC;oBACnF,SAAS;gBACb,CAAC;gBACD,MAAM,OAAO,CAAC;gBACd,SAAS;YACb,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,uBAAuB,IAAI,OAAO,GAAG,uBAAuB,EAAE,CAAC;gBAClG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,cAAc,OAAO,6BAA6B,CAAC,CAAC;gBAC7F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC3B,SAAS;YACb,CAAC;YAED,MAAM,OAAO,CAAC;QAClB,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,SAAiB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACJ,CAAA;AAzDY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,qBAAU,GAAE;IAIJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;IACxB,WAAA,IAAA,iBAAM,EAAC,mCAAgB,CAAC,kBAAkB,CAAC,CAAA;IAC3C,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;6CAD0C,uCAAkB;GAJtF,gBAAgB,CAyD5B"}
1
+ {"version":3,"file":"BusMessageFilter.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,10 @@ export declare class CommonMessageProcessor {
5
5
  private logger;
6
6
  constructor(runsRepository: CommonRunsRepository);
7
7
  /**
8
- * Create/update and process transformed run
8
+ * Process a transformed run message
9
+ *
10
+ * @param element - The run with message data (already filtered, with isNotPublic flag set)
11
+ * @param firstMessageCreatedAt - Timestamp of the first message in the batch
9
12
  */
10
13
  processTransformedRun: (element: ICommonRunWithMessageDto, firstMessageCreatedAt?: number) => Promise<void>;
11
14
  private logElementIssues;
@@ -7,33 +7,46 @@ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
7
7
  const config_1 = require("@golemio/core/dist/integration-engine/config");
8
8
  const queueprocessors_1 = require("@golemio/core/dist/integration-engine/queueprocessors");
9
9
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
10
- const const_1 = require("../../../../../const");
11
10
  const ONE_HOUR_IN_MILLIS = 60 * 60 * 1000;
12
11
  const MIN_HOURS_DIFF_TO_LOG = 22;
13
12
  class CommonMessageProcessor {
14
13
  constructor(runsRepository) {
15
14
  this.runsRepository = runsRepository;
16
15
  /**
17
- * Create/update and process transformed run
16
+ * Process a transformed run message
17
+ *
18
+ * @param element - The run with message data (already filtered, with isNotPublic flag set)
19
+ * @param firstMessageCreatedAt - Timestamp of the first message in the batch
18
20
  */
19
21
  this.processTransformedRun = async (element, firstMessageCreatedAt) => {
20
22
  this.logElementIssues(element);
21
23
  const record = await this.runsRepository.getRunRecordForUpdate(element.run);
24
+ // Read flag set by filter (avoids duplicate whitelist check)
25
+ const isNotPublic = element.isNotPublic === true ? true : undefined;
22
26
  let outputMsg;
23
27
  if (record) {
24
- if (!element.run_message.actual_stop_timestamp_scheduled &&
25
- !const_1.ArrayNotPublicRegistrationNumbers.includes(element.run.registration_number)) {
26
- const lastRecordMessage = await this.runsRepository["runsMessagesRepository"].getLastMessage(record.id);
27
- if (!lastRecordMessage || !lastRecordMessage.actual_stop_timestamp_scheduled)
28
- return;
29
- element.run_message.actual_stop_timestamp_scheduled = lastRecordMessage.actual_stop_timestamp_scheduled;
28
+ // Data quality check: Ensure scheduled vehicles have timestamps
29
+ // Not-public vehicles (replacement buses/trams) don't need scheduled timestamps
30
+ // Regular scheduled vehicles MUST have a timestamp or be able to get one from history
31
+ if (!element.run_message.actual_stop_timestamp_scheduled) {
32
+ // If NOT a not-public vehicle, try to get timestamp from last message
33
+ // If we can't get it, skip this message (data quality issue)
34
+ if (!isNotPublic) {
35
+ const lastRecordMessage = await this.runsRepository["runsMessagesRepository"].getLastMessage(record.id);
36
+ if (!lastRecordMessage || !lastRecordMessage.actual_stop_timestamp_scheduled) {
37
+ // Cannot process scheduled vehicle without timestamp
38
+ return;
39
+ }
40
+ element.run_message.actual_stop_timestamp_scheduled = lastRecordMessage.actual_stop_timestamp_scheduled;
41
+ }
42
+ // If IS a not-public vehicle, continue without timestamp (this is expected)
30
43
  }
31
44
  outputMsg = await this.runsRepository.updateAndAssociate(element, record.id);
32
45
  }
33
46
  else {
34
47
  outputMsg = await this.runsRepository.createAndAssociate(element);
35
48
  }
36
- await queueprocessors_1.QueueManager.sendMessageToExchange(`${config_1.config.RABBIT_EXCHANGE_NAME}.${vehicle_positions_1.VehiclePositions.name.toLowerCase()}`, "updateRunsGTFSTripId", outputMsg, { timestamp: firstMessageCreatedAt });
49
+ await queueprocessors_1.QueueManager.sendMessageToExchange(`${config_1.config.RABBIT_EXCHANGE_NAME}.${vehicle_positions_1.VehiclePositions.name.toLowerCase()}`, "updateRunsGTFSTripId", { ...outputMsg, isNotPublic }, { timestamp: firstMessageCreatedAt });
37
50
  };
38
51
  this.logger = Di_1.PidContainer.resolve(CoreToken_1.CoreToken.Logger);
39
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CommonMessageProcessor.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAC1C,2FAA0D;AAE1D,wEAAqE;AAErE,yEAAsE;AACtE,2FAAqF;AACrF,6EAAwE;AACxE,gDAAyE;AAGzE,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC1C,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,MAAa,sBAAsB;IAG/B,YAA6B,cAAoC;QAApC,mBAAc,GAAd,cAAc,CAAsB;QAIjE;;WAEG;QACI,0BAAqB,GAAG,KAAK,EAAE,OAAiC,EAAE,qBAA8B,EAAiB,EAAE;YACtH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAE5E,IAAI,SAAmC,CAAC;YACxC,IAAI,MAAM,EAAE,CAAC;gBACT,IACI,CAAC,OAAO,CAAC,WAAW,CAAC,+BAA+B;oBACpD,CAAC,yCAAiC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAC9E,CAAC;oBACC,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACxG,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,+BAA+B;wBAAE,OAAO;oBACrF,OAAO,CAAC,WAAW,CAAC,+BAA+B,GAAG,iBAAiB,CAAC,+BAA+B,CAAC;gBAC5G,CAAC;gBAED,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACJ,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,8BAAY,CAAC,qBAAqB,CACpC,GAAG,eAAM,CAAC,oBAAoB,IAAI,oCAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EACvE,sBAAsB,EACtB,SAAS,EACT,EAAE,SAAS,EAAE,qBAAqB,EAAE,CACvC,CAAC;QACN,CAAC,CAAC;QAhCE,IAAI,CAAC,MAAM,GAAG,iBAAY,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;IAiCO,gBAAgB,CAAC,OAAiC;QACtD,IACI,OAAO,CAAC,WAAW,CAAC,+BAA+B,YAAY,IAAI;YACnE,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;gBACtE,qBAAqB,GAAG,kBAAkB,EAChD,CAAC;YACC,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,qCAAqC,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,WAAW,EAAE,GAAG;gBACrG,OAAO,qBAAqB,qBAAqB,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO;gBACnF,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EACjC,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,SAAS,EACT,KAAK,CACR,CACJ,CAAC;QACN,CAAC;IACL,CAAC;CACJ;AAzDD,wDAyDC"}
1
+ {"version":3,"file":"CommonMessageProcessor.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,23 @@
1
1
  import { ICommonRunWithMessageDto } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto";
2
+ import { NotPublicVehiclesRedisRepository } from "../../../../ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository";
2
3
  import { ILogger } from "@golemio/core/dist/helpers/logger";
3
4
  import { ICommonMessageFilter } from "./interfaces/ICommonMessageFilter";
4
5
  import { TimestampValidator } from "./TimestampValidator";
5
6
  export declare class TramMessageFilter implements ICommonMessageFilter {
6
7
  private logger;
7
8
  private timestampValidator;
8
- constructor(logger: ILogger, timestampValidator: TimestampValidator);
9
+ private notPublicVehiclesRepository;
10
+ constructor(logger: ILogger, timestampValidator: TimestampValidator, notPublicVehiclesRepository: NotPublicVehiclesRedisRepository);
9
11
  /**
10
12
  * Yield tram messages that are valid for processing
11
13
  * - route id is not considered a servicing route (50-89, note: >89 is a night tram route)
12
14
  * - run number is less than 80
13
- * - mazačka trams (maintanance) are always processed, even though they are servicing routes
15
+ * - OR registration number is in not-public vehicles whitelist (e.g., mazačka maintenance trams)
14
16
  * - timestamp is in acceptable range
17
+ *
18
+ * Sets isNotPublic flag on messages to avoid duplicate whitelist checks in processor
15
19
  */
16
- yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): Generator<ICommonRunWithMessageDto>;
20
+ yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): AsyncGenerator<ICommonRunWithMessageDto>;
17
21
  private isRouteIdValid;
18
22
  private isRunNumberValid;
19
23
  }
@@ -13,9 +13,9 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.TramMessageFilter = void 0;
16
+ const NotPublicVehiclesRedisRepository_1 = require("../../../../ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository");
16
17
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
17
18
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
18
- const const_1 = require("../../../../../const");
19
19
  const VPContainerToken_1 = require("../../../ioc/VPContainerToken");
20
20
  const TimestampValidator_1 = require("./TimestampValidator");
21
21
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
@@ -23,28 +23,44 @@ const TRAM_SERVICING_ROUTE_ID_MIN = 50;
23
23
  const TRAM_SERVICING_ROUTE_ID_MAX = 89;
24
24
  const TRAM_UNUSUAL_RUN_NUMBER_MIN = 80;
25
25
  let TramMessageFilter = class TramMessageFilter {
26
- constructor(logger, timestampValidator) {
26
+ constructor(logger, timestampValidator, notPublicVehiclesRepository) {
27
27
  this.logger = logger;
28
28
  this.timestampValidator = timestampValidator;
29
+ this.notPublicVehiclesRepository = notPublicVehiclesRepository;
29
30
  }
30
31
  /**
31
32
  * Yield tram messages that are valid for processing
32
33
  * - route id is not considered a servicing route (50-89, note: >89 is a night tram route)
33
34
  * - run number is less than 80
34
- * - mazačka trams (maintanance) are always processed, even though they are servicing routes
35
+ * - OR registration number is in not-public vehicles whitelist (e.g., mazačka maintenance trams)
35
36
  * - timestamp is in acceptable range
37
+ *
38
+ * Sets isNotPublic flag on messages to avoid duplicate whitelist checks in processor
36
39
  */
37
- *yieldFilteredMessages(messages, timestamp) {
40
+ async *yieldFilteredMessages(messages, timestamp) {
41
+ // Load config once for the entire batch to avoid multiple Redis calls
42
+ const { tram: { registrationNumbers }, routeIds, } = await this.notPublicVehiclesRepository.getConfig();
43
+ const whitelistedRegistrationNumbers = new Set(registrationNumbers);
44
+ const whitelistedRouteNames = new Set(routeIds);
38
45
  for (const message of messages) {
39
- const { route_id, run_number, registration_number } = message.run;
46
+ const { route_id, run_number, registration_number, line_short_name } = message.run;
40
47
  if (!this.timestampValidator.isTimestampValid(timestamp, message.run_message.actual_stop_timestamp_real.toString())) {
41
48
  this.logger.error(new golemio_errors_1.GeneralError("Message timestamp 'takt' of value" +
42
- message.run_message.actual_stop_timestamp_real.toISOString() +
43
- `is not valid for line ${message.run.line_short_name}, run ${message.run.run_number}`, this.constructor.name, undefined, undefined, "pid"));
49
+ ` '${message.run_message.actual_stop_timestamp_real.toISOString()}'` +
50
+ ` is not valid for line ${message.run.line_short_name}, run ${message.run.run_number}`, this.constructor.name, undefined, undefined, "pid"));
44
51
  continue;
45
52
  }
46
- if (const_1.ArrayNotPublicRegistrationNumbers.includes(registration_number) ||
47
- (this.isRouteIdValid(route_id) && this.isRunNumberValid(run_number))) {
53
+ // Check if this is a not-public vehicle
54
+ // - Whitelisted registration number (e.g., mazačka maintenance tram)
55
+ // - Whitelisted route name (e.g., ad-hoc routes like X1, X2, NAD)
56
+ const isNotPublicByRegistration = whitelistedRegistrationNumbers.has(registration_number);
57
+ const isNotPublicByRouteName = whitelistedRouteNames.has(line_short_name);
58
+ const isNotPublicVehicle = isNotPublicByRegistration || isNotPublicByRouteName;
59
+ // Allow if:
60
+ // - Whitelisted by registration number OR route name (not-public vehicles)
61
+ // - OR valid route_id and run_number (scheduled vehicles)
62
+ if (isNotPublicVehicle || (this.isRouteIdValid(route_id) && this.isRunNumberValid(run_number))) {
63
+ message.isNotPublic = isNotPublicVehicle; // ← Set flag
48
64
  yield message;
49
65
  }
50
66
  else {
@@ -67,6 +83,8 @@ exports.TramMessageFilter = TramMessageFilter = __decorate([
67
83
  (0, tsyringe_1.injectable)(),
68
84
  __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
69
85
  __param(1, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.TimestampValidator)),
70
- __metadata("design:paramtypes", [Object, TimestampValidator_1.TimestampValidator])
86
+ __param(2, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.NotPublicVehiclesRedisRepository)),
87
+ __metadata("design:paramtypes", [Object, TimestampValidator_1.TimestampValidator,
88
+ NotPublicVehiclesRedisRepository_1.NotPublicVehiclesRedisRepository])
71
89
  ], TramMessageFilter);
72
90
  //# sourceMappingURL=TramMessageFilter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TramMessageFilter.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,wEAAqE;AAErE,iEAAwE;AACxE,gDAA8D;AAE9D,oEAA8E;AAC9E,6DAA0D;AAC1D,6EAAwE;AAExE,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAGhC,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC1B,YACsC,MAAe,EACI,kBAAsC;QADzD,WAAM,GAAN,MAAM,CAAS;QACI,uBAAkB,GAAlB,kBAAkB,CAAoB;IAC5F,CAAC;IAEJ;;;;;;OAMG;IACI,CAAC,qBAAqB,CAAC,QAAoC,EAAE,SAAiB;QACjF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;YAElE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;gBAClH,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,mCAAmC;oBAC/B,OAAO,CAAC,WAAW,CAAC,0BAA0B,CAAC,WAAW,EAAE;oBAC5D,yBAAyB,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EACzF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,SAAS,EACT,KAAK,CACR,CACJ,CAAC;gBACF,SAAS;YACb,CAAC;YAED,IACI,yCAAiC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBAC/D,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,EACtE,CAAC;gBACC,MAAM,OAAO,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,cAAc,QAAQ,kBAAkB,UAAU,aAAa,CAAC,CAAC;gBAC1G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,OAAe;QAClC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,CACH,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;YAC5B,CAAC,aAAa,GAAG,2BAA2B,IAAI,aAAa,GAAG,2BAA2B,CAAC,CAC/F,CAAC;IACN,CAAC;IAEO,gBAAgB,CAAC,SAAiB;QACtC,OAAO,SAAS,GAAG,2BAA2B,CAAC;IACnD,CAAC;CACJ,CAAA;AAvDY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;IACxB,WAAA,IAAA,iBAAM,EAAC,mCAAgB,CAAC,kBAAkB,CAAC,CAAA;6CAA6B,uCAAkB;GAHtF,iBAAiB,CAuD7B"}
1
+ {"version":3,"file":"TramMessageFilter.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { ICommonRunWithMessageDto } from "../../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto";
2
2
  export interface ICommonMessageFilter {
3
- yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): Generator<ICommonRunWithMessageDto>;
3
+ yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): AsyncGenerator<ICommonRunWithMessageDto>;
4
4
  }
@@ -37,7 +37,7 @@ let SaveBusRunsToDBTask = class SaveBusRunsToDBTask extends workers_1.AbstractTa
37
37
  }
38
38
  const messages = this.messagesTransformation.transform({ data: data.M.V, timestamp });
39
39
  const filteredMessages = this.messageFilter.yieldFilteredMessages(messages, timestamp);
40
- for (const runMessage of filteredMessages) {
40
+ for await (const runMessage of filteredMessages) {
41
41
  await this.messageProcessor.processTransformedRun(runMessage, timestamp);
42
42
  }
43
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SaveBusRunsToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2EAA6E;AAC7E,6EAAwE;AAExE,8EAA2E;AAE3E,8EAA2E;AAG3E,iEAAwE;AAExE,wCAA2D;AAC3D,oEAA8E;AAC9E,iEAAgE;AAChE,4CAA2C;AAGpC,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,sBAA8B;IAUnE;QACI,KAAK,CAAC,uBAAW,CAAC,CAAC;QAVP,cAAS,GAAG,iBAAiB,CAAC;QAC9B,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QACtC,WAAM,GAAG,6CAA0B,CAAC;QAShD,IAAI,CAAC,sBAAsB,GAAG,gBAAW,CAAC,OAAO,CAC7C,mCAAgB,CAAC,gCAAgC,CACpD,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,2CAAoB,EAAE,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxE,IAAI,CAAC,aAAa,GAAG,gBAAW,CAAC,OAAO,CAAmB,mCAAgB,CAAC,gBAAgB,CAAC,CAAC;IAClG,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,IAAsB,EAAE,aAAiC;QAC7E,MAAM,SAAS,GAAG,aAAa,EAAE,SAAS,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAAY,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACtF,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEvF,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;CACJ,CAAA;AAjCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,qBAAU,GAAE;;GACA,mBAAmB,CAiC/B"}
1
+ {"version":3,"file":"SaveBusRunsToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2EAA6E;AAC7E,6EAAwE;AAExE,8EAA2E;AAC3E,8EAA2E;AAG3E,iEAAwE;AAExE,wCAA2D;AAC3D,oEAA8E;AAC9E,iEAAgE;AAChE,4CAA2C;AAGpC,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,sBAA8B;IAUnE;QACI,KAAK,CAAC,uBAAW,CAAC,CAAC;QAVP,cAAS,GAAG,iBAAiB,CAAC;QAC9B,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QACtC,WAAM,GAAG,6CAA0B,CAAC;QAShD,IAAI,CAAC,sBAAsB,GAAG,gBAAW,CAAC,OAAO,CAC7C,mCAAgB,CAAC,gCAAgC,CACpD,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,2CAAoB,EAAE,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxE,IAAI,CAAC,aAAa,GAAG,gBAAW,CAAC,OAAO,CAAmB,mCAAgB,CAAC,gBAAgB,CAAC,CAAC;IAClG,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,IAAsB,EAAE,aAAiC;QAC7E,MAAM,SAAS,GAAG,aAAa,EAAE,SAAS,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAAY,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACtF,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEvF,IAAI,KAAK,EAAE,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;CACJ,CAAA;AAjCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,qBAAU,GAAE;;GACA,mBAAmB,CAiC/B"}
@@ -37,7 +37,7 @@ let SaveTramRunsToDBTask = class SaveTramRunsToDBTask extends workers_1.Abstract
37
37
  }
38
38
  const messages = this.messagesTransformation.transform({ data: data.M.V, timestamp }, true);
39
39
  const filteredMessages = this.messageFilter.yieldFilteredMessages(messages, timestamp);
40
- for (const runMessage of filteredMessages) {
40
+ for await (const runMessage of filteredMessages) {
41
41
  await this.messageProcessor.processTransformedRun(runMessage, timestamp);
42
42
  }
43
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SaveTramRunsToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAA2D;AAC3D,oEAA8E;AAC9E,2EAA6E;AAC7E,6EAAwE;AAExE,8EAA2E;AAC3E,8EAA2E;AAG3E,iEAAwE;AAExE,iEAAgE;AAChE,4CAA2C;AAIpC,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,sBAA8B;IAUpE;QACI,KAAK,CAAC,uBAAW,CAAC,CAAC;QAVP,cAAS,GAAG,kBAAkB,CAAC;QAC/B,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QACtC,WAAM,GAAG,6CAA0B,CAAC;QAShD,IAAI,CAAC,sBAAsB,GAAG,gBAAW,CAAC,OAAO,CAC7C,mCAAgB,CAAC,gCAAgC,CACpD,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,2CAAoB,EAAE,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxE,IAAI,CAAC,aAAa,GAAG,gBAAW,CAAC,OAAO,CAAoB,mCAAgB,CAAC,iBAAiB,CAAC,CAAC;IACpG,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,IAAsB,EAAE,aAAiC;QAC7E,MAAM,SAAS,GAAG,aAAa,EAAE,SAAS,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAAY,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5F,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACvF,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;CACJ,CAAA;AAhCY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,qBAAU,GAAE;;GACA,oBAAoB,CAgChC"}
1
+ {"version":3,"file":"SaveTramRunsToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAA2D;AAC3D,oEAA8E;AAC9E,2EAA6E;AAC7E,6EAAwE;AAExE,8EAA2E;AAC3E,8EAA2E;AAG3E,iEAAwE;AAExE,iEAAgE;AAChE,4CAA2C;AAIpC,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,sBAA8B;IAUpE;QACI,KAAK,CAAC,uBAAW,CAAC,CAAC;QAVP,cAAS,GAAG,kBAAkB,CAAC;QAC/B,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QACtC,WAAM,GAAG,6CAA0B,CAAC;QAShD,IAAI,CAAC,sBAAsB,GAAG,gBAAW,CAAC,OAAO,CAC7C,mCAAgB,CAAC,gCAAgC,CACpD,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,2CAAoB,EAAE,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxE,IAAI,CAAC,aAAa,GAAG,gBAAW,CAAC,OAAO,CAAoB,mCAAgB,CAAC,iBAAiB,CAAC,CAAC;IACpG,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,IAAsB,EAAE,aAAiC;QAC7E,MAAM,SAAS,GAAG,aAAa,EAAE,SAAS,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAAY,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5F,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACvF,IAAI,KAAK,EAAE,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;CACJ,CAAA;AAhCY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,qBAAU,GAAE;;GACA,oBAAoB,CAgChC"}
@@ -7,4 +7,10 @@ export interface IRunMessageWithStringTimestamps extends Omit<ICommonRunsMessage
7
7
  export interface IUpdateRunsGtfsTripInput {
8
8
  run: ICommonRunsModel;
9
9
  run_message: IRunMessageWithStringTimestamps;
10
+ /**
11
+ * Flag set by message filters to indicate this is a not-public vehicle
12
+ * (replacement bus/tram without schedule, or ad-hoc route)
13
+ * Used to avoid duplicate whitelist checks
14
+ */
15
+ isNotPublic?: boolean;
10
16
  }
@@ -9,7 +9,6 @@ const CommonRunsRepository_1 = require("../../runs/data-access/CommonRunsReposit
9
9
  const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
10
10
  const queueprocessors_1 = require("@golemio/core/dist/integration-engine/queueprocessors");
11
11
  const workers_1 = require("@golemio/core/dist/integration-engine/workers");
12
- const const_1 = require("../../../../../const");
13
12
  const PositionsRepository_1 = require("../data-access/PositionsRepository");
14
13
  const TripsRepository_1 = require("../data-access/TripsRepository");
15
14
  const PositionsMapper_1 = __importDefault(require("../data-access/helpers/PositionsMapper"));
@@ -49,7 +48,9 @@ class UpdateRunsGtfsTripIdTask extends workers_1.AbstractTask {
49
48
  async execute(data, messageProperties) {
50
49
  const schedule = await this.gtfsTripRunManager.setAndReturnScheduledTrips(data.run);
51
50
  if (schedule.length === 0) {
52
- if (const_1.ArrayNotPublicRegistrationNumbers.includes(data.run.registration_number)) {
51
+ // Use the isNotPublic flag set by the filter to avoid duplicate Redis calls
52
+ // This flag is true if the vehicle is whitelisted by registration number or route name
53
+ if (data.isNotPublic === true) {
53
54
  await this.updateNotPublicRunTrip(data);
54
55
  }
55
56
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateRunsGtfsTripIdTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpdateRunsGtfsTripIdTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,6 @@ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
19
19
  const ioc_1 = require("@golemio/core/dist/output-gateway/ioc");
20
20
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
21
21
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
22
- const ONE_SECOND = 1;
23
22
  let PublicGtfsDepartureRepository = class PublicGtfsDepartureRepository {
24
23
  constructor(redisConnector, log) {
25
24
  this.redisConnector = redisConnector;
@@ -1 +1 @@
1
- {"version":3,"file":"PublicGtfsDepartureRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.ts"],"names":[],"mappings":"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"}
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;AAGjE,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IACtC,YACmD,cAAgC,EAC7C,GAAY;QADC,mBAAc,GAAd,cAAc,CAAkB;QAC7C,QAAG,GAAH,GAAG,CAAS;IAC/C,CAAC;IAEG,KAAK,CAAC,2BAA2B,CACpC,OAAiB,EACjB,YAAoB,EACpB,QAAe,EACf,KAAc;QAEd,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QACxC,CAAC;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;IAEO,KAAK,CAAC,yBAAyB,CACnC,MAAc,EACd,YAAoB,EACpB,QAAe,EACf,KAAc;QAEd,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QAEvD,IAAI,cAAwB,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC;YACD,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;aAC3F,CAAC;QACN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,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;QACN,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,iDAAiD,MAAM,WAAW,CAAC,CAAC;YAC1G,OAAO,EAAE,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAiC,CAAC,CAAC;QAC5F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,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;QACN,CAAC;IACL,CAAC;CACJ,CAAA;AAlEY,sEAA6B;wCAA7B,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"}
@@ -14,7 +14,7 @@ class DetailedTripFacade {
14
14
  vehiclePosition = await this.vehiclePositionRepository.getDetailedVehiclePosition(vehicleId, tripId);
15
15
  }
16
16
  if (!vehiclePosition) {
17
- throw new golemio_errors_1.GeneralError("not_found", this.constructor.name, undefined, 404);
17
+ throw new golemio_errors_1.GeneralError(`Vehicle position not found in cache for vehicle "${vehicleId}"`, this.constructor.name, undefined, 404);
18
18
  }
19
19
  let output = {};
20
20
  if (scopes.includes(DetailedTripScopeEnum_1.DetailedTripScope.Info)) {
@@ -1 +1 @@
1
- {"version":3,"file":"DetailedTripFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/service/facade/DetailedTripFacade.ts"],"names":[],"mappings":";;;AAEA,0FAAwF;AACxF,6EAAwE;AAGxE,MAAa,kBAAkB;IAC3B,YACY,mBAA4C,EAC5C,yBAAsD;QADtD,wBAAmB,GAAnB,mBAAmB,CAAyB;QAC5C,8BAAyB,GAAzB,yBAAyB,CAA6B;IAC/D,CAAC;IAEG,KAAK,CAAC,iBAAiB,CAC1B,SAAiB,EACjB,MAA2B,EAC3B,MAAe;QAEf,IAAI,eAAe,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;QAEjG,IAAI,MAAM,IAAI,eAAe,EAAE,YAAY,KAAK,MAAM,EAAE,CAAC;YACrD,eAAe,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,0BAA0B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzG,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,MAAM,IAAI,6BAAY,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,MAAM,GAA2B,EAAE,CAAC;QACxC,IAAI,MAAM,CAAC,QAAQ,CAAC,yCAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,yCAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAChH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACxC,IAAI,KAAK,KAAK,yCAAiB,CAAC,IAAI,EAAE,CAAC;gBACnC,OAAO;YACX,CAAC;YAED,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,eAAgB,CAAC,CAAC;QAChG,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AArCD,gDAqCC"}
1
+ {"version":3,"file":"DetailedTripFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/service/facade/DetailedTripFacade.ts"],"names":[],"mappings":";;;AAEA,0FAAwF;AACxF,6EAAwE;AAGxE,MAAa,kBAAkB;IAC3B,YACY,mBAA4C,EAC5C,yBAAsD;QADtD,wBAAmB,GAAnB,mBAAmB,CAAyB;QAC5C,8BAAyB,GAAzB,yBAAyB,CAA6B;IAC/D,CAAC;IAEG,KAAK,CAAC,iBAAiB,CAC1B,SAAiB,EACjB,MAA2B,EAC3B,MAAe;QAEf,IAAI,eAAe,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;QAEjG,IAAI,MAAM,IAAI,eAAe,EAAE,YAAY,KAAK,MAAM,EAAE,CAAC;YACrD,eAAe,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,0BAA0B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzG,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,MAAM,IAAI,6BAAY,CAClB,oDAAoD,SAAS,GAAG,EAChE,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,GAAG,CACN,CAAC;QACN,CAAC;QAED,IAAI,MAAM,GAA2B,EAAE,CAAC;QACxC,IAAI,MAAM,CAAC,QAAQ,CAAC,yCAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,yCAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAChH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACxC,IAAI,KAAK,KAAK,yCAAiB,CAAC,IAAI,EAAE,CAAC;gBACnC,OAAO;YACX,CAAC;YAED,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,eAAgB,CAAC,CAAC;QAChG,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AA1CD,gDA0CC"}
@@ -30,7 +30,7 @@ let ShapesTripScopeHandler = class ShapesTripScopeHandler extends AbstractDetail
30
30
  async handle(output, vehiclePosition) {
31
31
  const delayComputationCache = await this.delayComputationRepository.getDelayComputationCacheProperty(vehiclePosition.gtfs_trip_id, "shapes");
32
32
  if (!delayComputationCache) {
33
- throw new golemio_errors_1.GeneralError("delay_computation_cache_not_found", this.constructor.name, undefined, 500);
33
+ throw new golemio_errors_1.GeneralError(`Delay computation not found in cache for trip "${vehiclePosition.gtfs_trip_id}"`, this.constructor.name, undefined, 404);
34
34
  }
35
35
  output.shapes = (0, Geo_1.buildGeojsonFeatureCollection)(delayComputationCache.shapes ? this.tripShapesTransformation.transformArray(delayComputationCache.shapes) : []);
36
36
  return output;
@@ -1 +1 @@
1
- {"version":3,"file":"ShapesTripScopeHandler.js","sourceRoot":"","sources":["../../../../../../../src/output-gateway/public/service/helpers/trip-scope/strategy/ShapesTripScopeHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,iEAA6D;AAC7D,uHAA8H;AAC9H,6DAA+C;AAG/C,+DAAsF;AACtF,6EAAwE;AACxE,iEAAwE;AACxE,yFAAsF;AAG/E,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,mEAAgC;IAIxE,YAC8D,0BAAuD;QAEjH,KAAK,EAAE,CAAC;QAFkD,+BAA0B,GAA1B,0BAA0B,CAA6B;QAGjH,IAAI,CAAC,wBAAwB,GAAG,IAAI,mEAAgC,EAAE,CAAC;QACvE,IAAI,CAAC,UAAU,GAAG,eAAM,CAAC,eAAe,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,MAA8B,EAAE,eAAmC;QACnF,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,gCAAgC,CAChG,eAAe,CAAC,YAAY,EAC5B,QAAQ,CACX,CAAC;QAEF,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACzB,MAAM,IAAI,6BAAY,CAAC,mCAAmC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACvG,CAAC;QAED,MAAM,CAAC,MAAM,GAAG,IAAA,mCAA6B,EACzC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CACjH,CAAC;QAEF,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAA;AA5BY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,qBAAU,GAAE;IAMJ,WAAA,IAAA,iBAAM,EAAC,6BAAa,CAAC,0BAA0B,CAAC,CAAA;;GAL5C,sBAAsB,CA4BlC"}
1
+ {"version":3,"file":"ShapesTripScopeHandler.js","sourceRoot":"","sources":["../../../../../../../src/output-gateway/public/service/helpers/trip-scope/strategy/ShapesTripScopeHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,iEAA6D;AAC7D,uHAA8H;AAC9H,6DAA+C;AAG/C,+DAAsF;AACtF,6EAAwE;AACxE,iEAAwE;AACxE,yFAAsF;AAG/E,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,mEAAgC;IAIxE,YAC8D,0BAAuD;QAEjH,KAAK,EAAE,CAAC;QAFkD,+BAA0B,GAA1B,0BAA0B,CAA6B;QAGjH,IAAI,CAAC,wBAAwB,GAAG,IAAI,mEAAgC,EAAE,CAAC;QACvE,IAAI,CAAC,UAAU,GAAG,eAAM,CAAC,eAAe,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,MAA8B,EAAE,eAAmC;QACnF,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,gCAAgC,CAChG,eAAe,CAAC,YAAY,EAC5B,QAAQ,CACX,CAAC;QAEF,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACzB,MAAM,IAAI,6BAAY,CAClB,kDAAkD,eAAe,CAAC,YAAY,GAAG,EACjF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,GAAG,CACN,CAAC;QACN,CAAC;QAED,MAAM,CAAC,MAAM,GAAG,IAAA,mCAA6B,EACzC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CACjH,CAAC;QAEF,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAA;AAjCY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,qBAAU,GAAE;IAMJ,WAAA,IAAA,iBAAM,EAAC,6BAAa,CAAC,0BAA0B,CAAC,CAAA;;GAL5C,sBAAsB,CAiClC"}
@@ -30,7 +30,7 @@ let StopTimesTripScopeHandler = class StopTimesTripScopeHandler extends Abstract
30
30
  async handle(output, vehiclePosition) {
31
31
  const delayComputationCache = await this.delayComputationRepository.getDelayComputationCacheProperty(vehiclePosition.gtfs_trip_id, "stop_times");
32
32
  if (!delayComputationCache) {
33
- throw new golemio_errors_1.GeneralError("delay_computation_cache_not_found", this.constructor.name, undefined, 500);
33
+ throw new golemio_errors_1.GeneralError(`Delay computation not found in cache for trip "${vehiclePosition.gtfs_trip_id}"`, this.constructor.name, undefined, 404);
34
34
  }
35
35
  const filteredStopTimes = this.filterNoStopWaypoints(delayComputationCache.stop_times);
36
36
  const vpAndFilteredStopTimes = filteredStopTimes.map((stopTime) => ({ stopTime, vehiclePosition }));
@@ -1 +1 @@
1
- {"version":3,"file":"StopTimesTripScopeHandler.js","sourceRoot":"","sources":["../../../../../../../src/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StopTimesTripScopeHandler.js","sourceRoot":"","sources":["../../../../../../../src/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,13 @@
1
- import { SequelizeModel } from "@golemio/core/dist/output-gateway";
2
- export declare class PositionRepository extends SequelizeModel {
3
- constructor();
1
+ import { PositionDto } from "../../../schema-definitions/vehicle-positions/models/PositionDto";
2
+ import { AbstractBasicRepository } from "@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractBasicRepository";
3
+ import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postgres/IDatabaseConnector";
4
+ import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
5
+ import { ModelStatic } from "@golemio/core/dist/shared/sequelize";
6
+ export declare class PositionRepository extends AbstractBasicRepository {
7
+ schema: string;
8
+ tableName: string;
9
+ sequelizeModel: ModelStatic<PositionDto>;
10
+ constructor(connector: IDatabaseConnector, logger: ILogger);
4
11
  GetAll(): never;
5
12
  GetOne(): never;
6
13
  }