@golemio/pid 2.13.3 → 2.13.4-dev.1297412603

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 (94) hide show
  1. package/db/migrations/postgresql/20240519214722-data-retention-valid-to-check.js +53 -0
  2. package/db/migrations/postgresql/sqls/20240519214722-data-retention-valid-to-check-down.sql +76 -0
  3. package/db/migrations/postgresql/sqls/20240519214722-data-retention-valid-to-check-up.sql +76 -0
  4. package/dist/integration-engine/index.d.ts +0 -1
  5. package/dist/integration-engine/index.js +0 -4
  6. package/dist/integration-engine/index.js.map +1 -1
  7. package/dist/integration-engine/ropid-gtfs/index.d.ts +0 -1
  8. package/dist/integration-engine/ropid-gtfs/index.js +0 -1
  9. package/dist/integration-engine/ropid-gtfs/index.js.map +1 -1
  10. package/dist/integration-engine/ropid-gtfs/ioc/Di.js +6 -0
  11. package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
  12. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +3 -0
  13. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +3 -0
  14. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
  15. package/dist/integration-engine/ropid-gtfs/workers/presets/PresetWorker.d.ts +3 -1
  16. package/dist/integration-engine/ropid-gtfs/workers/presets/PresetWorker.js +8 -0
  17. package/dist/integration-engine/ropid-gtfs/workers/presets/PresetWorker.js.map +1 -1
  18. package/dist/integration-engine/ropid-gtfs/workers/presets/data-access/DeparturesPresetsDatasource.d.ts +12 -0
  19. package/dist/integration-engine/ropid-gtfs/workers/presets/data-access/DeparturesPresetsDatasource.js +44 -0
  20. package/dist/integration-engine/ropid-gtfs/workers/presets/data-access/DeparturesPresetsDatasource.js.map +1 -0
  21. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/CheckForNewDeparturesPresetsTask.d.ts +11 -0
  22. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/CheckForNewDeparturesPresetsTask.js +69 -0
  23. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/CheckForNewDeparturesPresetsTask.js.map +1 -0
  24. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/DownloadDeparturesPresetsTask.d.ts +11 -0
  25. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/DownloadDeparturesPresetsTask.js +66 -0
  26. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/DownloadDeparturesPresetsTask.js.map +1 -0
  27. package/dist/integration-engine/vehicle-positions/ioc/Di.js +14 -0
  28. package/dist/integration-engine/vehicle-positions/ioc/Di.js.map +1 -1
  29. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.d.ts +7 -0
  30. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js +7 -0
  31. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js.map +1 -1
  32. package/dist/integration-engine/vehicle-positions/workers/runs/RunsWorker.js +4 -8
  33. package/dist/integration-engine/vehicle-positions/workers/runs/RunsWorker.js.map +1 -1
  34. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.d.ts +4 -2
  35. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js +14 -3
  36. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js.map +1 -1
  37. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js +2 -2
  38. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js.map +1 -1
  39. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TimestampValidator.d.ts +6 -0
  40. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TimestampValidator.js +38 -0
  41. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TimestampValidator.js.map +1 -0
  42. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.d.ts +5 -2
  43. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js +15 -3
  44. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js.map +1 -1
  45. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/interfaces/ICommonMessageFilter.d.ts +1 -1
  46. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.d.ts +4 -5
  47. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.js +16 -22
  48. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.js.map +1 -1
  49. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusRunsFacade.d.ts +4 -4
  50. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusRunsFacade.js +4 -3
  51. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusRunsFacade.js.map +1 -1
  52. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/interfaces/IRegionalBusMessageFilter.d.ts +1 -1
  53. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/interfaces/IRegionalBusRunsFacade.d.ts +2 -2
  54. package/dist/integration-engine/vehicle-positions/workers/runs/interfaces/MetroRunsMessageInterfaces.d.ts +3 -0
  55. package/dist/integration-engine/vehicle-positions/workers/runs/interfaces/RegionalBusRunsMessageInterfaces.d.ts +4 -0
  56. package/dist/integration-engine/vehicle-positions/workers/runs/schema/RegionalBusTransformedRunsSchema.js +4 -0
  57. package/dist/integration-engine/vehicle-positions/workers/runs/schema/RegionalBusTransformedRunsSchema.js.map +1 -1
  58. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunMessagesTask.d.ts +1 -1
  59. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunMessagesTask.js +19 -5
  60. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunMessagesTask.js.map +1 -1
  61. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveArrivaCityRunsToDBTask.d.ts +2 -2
  62. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveArrivaCityRunsToDBTask.js +11 -2
  63. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveArrivaCityRunsToDBTask.js.map +1 -1
  64. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.d.ts +1 -1
  65. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js +21 -8
  66. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js.map +1 -1
  67. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveMetroRunsToDBTask.d.ts +5 -1
  68. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveMetroRunsToDBTask.js +42 -8
  69. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveMetroRunsToDBTask.js.map +1 -1
  70. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.d.ts +1 -1
  71. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js +21 -8
  72. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js.map +1 -1
  73. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js +20 -6
  74. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js.map +1 -1
  75. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/MetroRunsMessagesTransformation.d.ts +2 -2
  76. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/MetroRunsMessagesTransformation.js +1 -1
  77. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/MetroRunsMessagesTransformation.js.map +1 -1
  78. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/RegionalBusRunsMessagesTransformation.js +1 -0
  79. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/RegionalBusRunsMessagesTransformation.js.map +1 -1
  80. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicStopTimeCacheTask.d.ts +0 -1
  81. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicStopTimeCacheTask.js +0 -1
  82. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicStopTimeCacheTask.js.map +1 -1
  83. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.d.ts +3 -6
  84. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.js +8 -19
  85. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.js.map +1 -1
  86. package/dist/schema-definitions/vehicle-positions/models/interfaces/IRegionalBusRunsMessagesModel.d.ts +1 -0
  87. package/docs/implementation_documentation.md +32 -1
  88. package/package.json +2 -2
  89. package/dist/integration-engine/queueDefinitions.d.ts +0 -6
  90. package/dist/integration-engine/queueDefinitions.js +0 -40
  91. package/dist/integration-engine/queueDefinitions.js.map +0 -1
  92. package/dist/integration-engine/ropid-gtfs/LegacyRopidGTFSWorker.d.ts +0 -19
  93. package/dist/integration-engine/ropid-gtfs/LegacyRopidGTFSWorker.js +0 -79
  94. package/dist/integration-engine/ropid-gtfs/LegacyRopidGTFSWorker.js.map +0 -1
@@ -35,6 +35,13 @@ const RefreshPublicStopTimeCacheTask_1 = require("../workers/vehicle-positions/t
35
35
  const RefreshPublicTripCacheTask_1 = require("../workers/vehicle-positions/tasks/RefreshPublicTripCacheTask");
36
36
  const PublicApiTripTransformation_1 = require("../workers/vehicle-positions/transformations/PublicApiTripTransformation");
37
37
  const VPContainerToken_1 = require("./VPContainerToken");
38
+ const TimestampValidator_1 = require("../workers/runs/helpers/TimestampValidator");
39
+ const CommonRunsMessagesTransformation_1 = require("../workers/runs/transformations/CommonRunsMessagesTransformation");
40
+ const MetroRunsMessagesTransformation_1 = require("../workers/runs/transformations/MetroRunsMessagesTransformation");
41
+ const SaveTramRunsToDBTask_1 = require("../workers/runs/tasks/SaveTramRunsToDBTask");
42
+ const SaveBusRunsToDBTask_1 = require("../workers/runs/tasks/SaveBusRunsToDBTask");
43
+ const SaveMetroRunsToDBTask_1 = require("../workers/runs/tasks/SaveMetroRunsToDBTask");
44
+ const ProcessMetroRunMessagesTask_1 = require("../workers/runs/tasks/ProcessMetroRunMessagesTask");
38
45
  //#region Initialization
39
46
  const VPContainer = Di_1.PidContainer.createChildContainer();
40
47
  exports.VPContainer = VPContainer;
@@ -59,6 +66,8 @@ VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.CachedMetroRai
59
66
  VPContainer.register(VPContainerToken_1.VPContainerToken.DescriptorTransformation, DescriptorTransformation_1.DescriptorTransformation);
60
67
  VPContainer.register(VPContainerToken_1.VPContainerToken.RegionalBusRunsMessagesTransformation, RegionalBusRunsMessagesTransformation_1.RegionalBusRunsMessagesTransformation);
61
68
  VPContainer.register(VPContainerToken_1.VPContainerToken.PublicApiTripTransformation, PublicApiTripTransformation_1.PublicApiTripTransformation);
69
+ VPContainer.register(VPContainerToken_1.VPContainerToken.CommonRunsMessagesTransformation, CommonRunsMessagesTransformation_1.CommonRunsMessagesTransformation);
70
+ VPContainer.register(VPContainerToken_1.VPContainerToken.MetroRunsMessagesTransformation, MetroRunsMessagesTransformation_1.MetroRunsMessagesTransformation);
62
71
  //#endregion
63
72
  //#region Helpers
64
73
  VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.DescriptorFilter, DescriptorFilter_1.DescriptorFilter);
@@ -71,6 +80,7 @@ VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RegionalBusMes
71
80
  VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RegionalBusRunsFacade, RegionalBusRunsFacade_1.RegionalBusRunsFacade);
72
81
  VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.HttpGtfsTripDataFixer, HttpGtfsTripDataFixer_1.HttpGtfsTripDataFixer);
73
82
  VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.GtfsTripDataFixerFactory, GtfsTripDataFixerFactory_1.GtfsTripDataFixerFactory);
83
+ VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.TimestampValidator, TimestampValidator_1.TimestampValidator);
74
84
  //#endregion
75
85
  //#region Helpers
76
86
  VPContainer.register(VPContainerToken_1.VPContainerToken.MetroShapePointsFixer, MetroShapePointsFixer_1.MetroShapePointsFixer);
@@ -82,4 +92,8 @@ VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.ProcessRegiona
82
92
  VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RefreshPublicTripCacheTask, RefreshPublicTripCacheTask_1.RefreshPublicTripCacheTask);
83
93
  VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RefreshPublicStopTimeCacheTask, RefreshPublicStopTimeCacheTask_1.RefreshPublicStopTimeCacheTask);
84
94
  VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RefreshGtfsTripDataTask, RefreshGtfsTripDataTask_1.RefreshGtfsTripDataTask);
95
+ VPContainer.register(VPContainerToken_1.VPContainerToken.SaveTramRunsToDBTask, SaveTramRunsToDBTask_1.SaveTramRunsToDBTask);
96
+ VPContainer.register(VPContainerToken_1.VPContainerToken.SaveBusRunsToDBTask, SaveBusRunsToDBTask_1.SaveBusRunsToDBTask);
97
+ VPContainer.register(VPContainerToken_1.VPContainerToken.SaveMetroRunsToDBTask, SaveMetroRunsToDBTask_1.SaveMetroRunsToDBTask);
98
+ VPContainer.register(VPContainerToken_1.VPContainerToken.ProcessMetroRunMessagesTask, ProcessMetroRunMessagesTask_1.ProcessMetroRunMessagesTask);
85
99
  //# sourceMappingURL=Di.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/ioc/Di.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/ioc/Di.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,13 @@ declare const VPContainerToken: {
21
21
  RegionalBusMessageFilter: symbol;
22
22
  RegionalBusRunsFacade: symbol;
23
23
  SaveArrivaCityRunsToDBTask: symbol;
24
+ SaveTramRunsToDBTask: symbol;
25
+ SaveBusRunsToDBTask: symbol;
26
+ SaveMetroRunsToDBTask: symbol;
27
+ ProcessMetroRunMessagesTask: symbol;
24
28
  ProcessRegionalBusRunMessagesTask: symbol;
29
+ MetroRunsMessagesTransformation: symbol;
30
+ CommonRunsMessagesTransformation: symbol;
25
31
  SeznamAutobusuDataSourceProvider: symbol;
26
32
  DescriptorDataSourceFactory: symbol;
27
33
  DescriptorRepository: symbol;
@@ -32,5 +38,6 @@ declare const VPContainerToken: {
32
38
  MetroRailtrackGPSRepository: symbol;
33
39
  CachedMetroRailTrackLookup: symbol;
34
40
  MetroShapePointsFixer: symbol;
41
+ TimestampValidator: symbol;
35
42
  };
36
43
  export { VPContainerToken };
@@ -27,7 +27,13 @@ const VPContainerToken = {
27
27
  RegionalBusMessageFilter: Symbol(),
28
28
  RegionalBusRunsFacade: Symbol(),
29
29
  SaveArrivaCityRunsToDBTask: Symbol(),
30
+ SaveTramRunsToDBTask: Symbol(),
31
+ SaveBusRunsToDBTask: Symbol(),
32
+ SaveMetroRunsToDBTask: Symbol(),
33
+ ProcessMetroRunMessagesTask: Symbol(),
30
34
  ProcessRegionalBusRunMessagesTask: Symbol(),
35
+ MetroRunsMessagesTransformation: Symbol(),
36
+ CommonRunsMessagesTransformation: Symbol(),
31
37
  //#endregion
32
38
  //#region Vehicle Descriptors
33
39
  SeznamAutobusuDataSourceProvider: Symbol(),
@@ -45,6 +51,7 @@ const VPContainerToken = {
45
51
  //#endregion
46
52
  //#region Helpers
47
53
  MetroShapePointsFixer: Symbol(),
54
+ TimestampValidator: Symbol(),
48
55
  //#endregion
49
56
  //#endregion
50
57
  };
@@ -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,EAAE;IACxB,wBAAwB,EAAE,MAAM,EAAE;IAClC,wBAAwB,EAAE,MAAM,EAAE;IAClC,6BAA6B,EAAE,MAAM,EAAE;IACvC,2BAA2B,EAAE,MAAM,EAAE;IACrC,wBAAwB,EAAE,MAAM,EAAE;IAClC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,0BAA0B,EAAE,MAAM,EAAE;IACpC,8BAA8B,EAAE,MAAM,EAAE;IACxC,uBAAuB,EAAE,MAAM,EAAE;IACjC,YAAY;IAEZ,cAAc;IACd,6BAA6B,EAAE,MAAM,EAAE;IACvC,8BAA8B,EAAE,MAAM,EAAE;IACxC,iCAAiC,EAAE,MAAM,EAAE;IAC3C,qCAAqC,EAAE,MAAM,EAAE;IAC/C,gBAAgB,EAAE,MAAM,EAAE;IAC1B,iBAAiB,EAAE,MAAM,EAAE;IAC3B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,gBAAgB,EAAE,MAAM,EAAE;IAC1B,iBAAiB,EAAE,MAAM,EAAE;IAC3B,wBAAwB,EAAE,MAAM,EAAE;IAClC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,0BAA0B,EAAE,MAAM,EAAE;IACpC,iCAAiC,EAAE,MAAM,EAAE;IAC3C,YAAY;IAEZ,6BAA6B;IAC7B,gCAAgC,EAAE,MAAM,EAAE;IAC1C,2BAA2B,EAAE,MAAM,EAAE;IACrC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,wBAAwB,EAAE,MAAM,EAAE;IAClC,gBAAgB,EAAE,MAAM,EAAE;IAC1B,sBAAsB,EAAE,MAAM,EAAE;IAChC,cAAc,EAAE,MAAM,EAAE;IACxB,YAAY;IAEZ,2BAA2B;IAE3B,oBAAoB;IACpB,2BAA2B,EAAE,MAAM,EAAE;IACrC,0BAA0B,EAAE,MAAM,EAAE;IACpC,YAAY;IAEZ,iBAAiB;IACjB,qBAAqB,EAAE,MAAM,EAAE;IAC/B,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,cAAc,EAAE,MAAM,EAAE;IACxB,wBAAwB,EAAE,MAAM,EAAE;IAClC,wBAAwB,EAAE,MAAM,EAAE;IAClC,6BAA6B,EAAE,MAAM,EAAE;IACvC,2BAA2B,EAAE,MAAM,EAAE;IACrC,wBAAwB,EAAE,MAAM,EAAE;IAClC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,0BAA0B,EAAE,MAAM,EAAE;IACpC,8BAA8B,EAAE,MAAM,EAAE;IACxC,uBAAuB,EAAE,MAAM,EAAE;IACjC,YAAY;IAEZ,cAAc;IACd,6BAA6B,EAAE,MAAM,EAAE;IACvC,8BAA8B,EAAE,MAAM,EAAE;IACxC,iCAAiC,EAAE,MAAM,EAAE;IAC3C,qCAAqC,EAAE,MAAM,EAAE;IAC/C,gBAAgB,EAAE,MAAM,EAAE;IAC1B,iBAAiB,EAAE,MAAM,EAAE;IAC3B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,gBAAgB,EAAE,MAAM,EAAE;IAC1B,iBAAiB,EAAE,MAAM,EAAE;IAC3B,wBAAwB,EAAE,MAAM,EAAE;IAClC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,0BAA0B,EAAE,MAAM,EAAE;IACpC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,qBAAqB,EAAE,MAAM,EAAE;IAC/B,2BAA2B,EAAE,MAAM,EAAE;IACrC,iCAAiC,EAAE,MAAM,EAAE;IAC3C,+BAA+B,EAAE,MAAM,EAAE;IACzC,gCAAgC,EAAE,MAAM,EAAE;IAE1C,YAAY;IAEZ,6BAA6B;IAC7B,gCAAgC,EAAE,MAAM,EAAE;IAC1C,2BAA2B,EAAE,MAAM,EAAE;IACrC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,wBAAwB,EAAE,MAAM,EAAE;IAClC,gBAAgB,EAAE,MAAM,EAAE;IAC1B,sBAAsB,EAAE,MAAM,EAAE;IAChC,cAAc,EAAE,MAAM,EAAE;IACxB,YAAY;IAEZ,2BAA2B;IAE3B,oBAAoB;IACpB,2BAA2B,EAAE,MAAM,EAAE;IACrC,0BAA0B,EAAE,MAAM,EAAE;IACpC,YAAY;IAEZ,iBAAiB;IACjB,qBAAqB,EAAE,MAAM,EAAE;IAC/B,kBAAkB,EAAE,MAAM,EAAE;IAC5B,YAAY;IAEZ,YAAY;CACf,CAAC;AAEO,4CAAgB"}
@@ -5,10 +5,6 @@ const Di_1 = require("../../ioc/Di");
5
5
  const VPContainerToken_1 = require("../../ioc/VPContainerToken");
6
6
  const workers_1 = require("@golemio/core/dist/integration-engine/workers");
7
7
  const constants_1 = require("./constants");
8
- const ProcessMetroRunMessagesTask_1 = require("./tasks/ProcessMetroRunMessagesTask");
9
- const SaveBusRunsToDBTask_1 = require("./tasks/SaveBusRunsToDBTask");
10
- const SaveMetroRunsToDBTask_1 = require("./tasks/SaveMetroRunsToDBTask");
11
- const SaveTramRunsToDBTask_1 = require("./tasks/SaveTramRunsToDBTask");
12
8
  class RunsWorker extends workers_1.AbstractWorker {
13
9
  constructor() {
14
10
  super();
@@ -20,10 +16,10 @@ class RunsWorker extends workers_1.AbstractWorker {
20
16
  // Register tasks
21
17
  this.registerTask(Di_1.VPContainer.resolve(VPContainerToken_1.VPContainerToken.SaveArrivaCityRunsToDBTask));
22
18
  this.registerTask(Di_1.VPContainer.resolve(VPContainerToken_1.VPContainerToken.ProcessRegionalBusRunMessagesTask));
23
- this.registerTask(new SaveBusRunsToDBTask_1.SaveBusRunsToDBTask(this.getQueuePrefix()));
24
- this.registerTask(new SaveTramRunsToDBTask_1.SaveTramRunsToDBTask(this.getQueuePrefix()));
25
- this.registerTask(new SaveMetroRunsToDBTask_1.SaveMetroRunsToDBTask(this.getQueuePrefix()));
26
- this.registerTask(new ProcessMetroRunMessagesTask_1.ProcessMetroRunMessagesTask(this.getQueuePrefix()));
19
+ this.registerTask(Di_1.VPContainer.resolve(VPContainerToken_1.VPContainerToken.SaveTramRunsToDBTask));
20
+ this.registerTask(Di_1.VPContainer.resolve(VPContainerToken_1.VPContainerToken.SaveBusRunsToDBTask));
21
+ this.registerTask(Di_1.VPContainer.resolve(VPContainerToken_1.VPContainerToken.SaveMetroRunsToDBTask));
22
+ this.registerTask(Di_1.VPContainer.resolve(VPContainerToken_1.VPContainerToken.ProcessMetroRunMessagesTask));
27
23
  }
28
24
  }
29
25
  exports.RunsWorker = RunsWorker;
@@ -1 +1 @@
1
- {"version":3,"file":"RunsWorker.js","sourceRoot":"","sources":["../../../../../src/integration-engine/vehicle-positions/workers/runs/RunsWorker.ts"],"names":[],"mappings":";;;AAAA,qCAA2D;AAC3D,iEAA8E;AAC9E,2EAA6F;AAC7F,2CAA0C;AAC1C,qFAAkF;AAClF,qEAAkE;AAClE,yEAAsE;AACtE,uEAAoE;AAEpE,MAAa,UAAW,SAAQ,wBAAc;IAG1C;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,uBAAW,CAAC;QActB,iBAAY,GAAG,CAAC,IAAuB,EAAQ,EAAE;YACpD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QAZE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CAAC,gBAAW,CAAC,OAAO,CAAC,mCAAgB,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,YAAY,CAAC,gBAAW,CAAC,OAAO,CAAC,mCAAgB,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,YAAY,CAAC,IAAI,yCAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,YAAY,CAAC,IAAI,2CAAoB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,CAAC,IAAI,6CAAqB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,CAAC,IAAI,yDAA2B,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;CAMJ;AAnBD,gCAmBC"}
1
+ {"version":3,"file":"RunsWorker.js","sourceRoot":"","sources":["../../../../../src/integration-engine/vehicle-positions/workers/runs/RunsWorker.ts"],"names":[],"mappings":";;;AAAA,qCAA2D;AAC3D,iEAA8E;AAC9E,2EAA6F;AAC7F,2CAA0C;AAM1C,MAAa,UAAW,SAAQ,wBAAc;IAG1C;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,uBAAW,CAAC;QAetB,iBAAY,GAAG,CAAC,IAAuB,EAAQ,EAAE;YACpD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QAbE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CAAC,gBAAW,CAAC,OAAO,CAAC,mCAAgB,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,YAAY,CAAC,gBAAW,CAAC,OAAO,CAAC,mCAAgB,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,YAAY,CAAC,gBAAW,CAAC,OAAO,CAAuB,mCAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAEpG,IAAI,CAAC,YAAY,CAAC,gBAAW,CAAC,OAAO,CAAsB,mCAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAClG,IAAI,CAAC,YAAY,CAAC,gBAAW,CAAC,OAAO,CAAwB,mCAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACtG,IAAI,CAAC,YAAY,CAAC,gBAAW,CAAC,OAAO,CAA8B,mCAAgB,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACtH,CAAC;CAMJ;AApBD,gCAoBC"}
@@ -1,14 +1,16 @@
1
1
  import { ICommonRunWithMessageDto } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto";
2
2
  import { ILogger } from "@golemio/core/dist/helpers/logger";
3
3
  import { ICommonMessageFilter } from "./interfaces/ICommonMessageFilter";
4
+ import { TimestampValidator } from "./TimestampValidator";
4
5
  export declare class BusMessageFilter implements ICommonMessageFilter {
5
6
  private logger;
6
- constructor(logger: ILogger);
7
+ private timestampValidator;
8
+ constructor(logger: ILogger, timestampValidator: TimestampValidator);
7
9
  /**
8
10
  * Yield messages that are valid for processing (filter out internal bus lines)
9
11
  * - route id is a string of length 3 or more
10
12
  * - route id is a number in range of bus and trolleybus lines
11
13
  * - route id >= 100 (bus) ∪ [50, 69] (trolleybus)
12
14
  */
13
- yieldFilteredMessages(messages: ICommonRunWithMessageDto[]): Generator<ICommonRunWithMessageDto>;
15
+ yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): Generator<ICommonRunWithMessageDto>;
14
16
  }
@@ -15,11 +15,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.BusMessageFilter = void 0;
16
16
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
17
17
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
18
+ const VPContainerToken_1 = require("../../../ioc/VPContainerToken");
19
+ const TimestampValidator_1 = require("./TimestampValidator");
20
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
18
21
  const TROLLEYBUS_ROUTE_ID_MIN = 50;
19
22
  const TROLLEYBUS_ROUTE_ID_MAX = 69;
20
23
  let BusMessageFilter = exports.BusMessageFilter = class BusMessageFilter {
21
- constructor(logger) {
24
+ constructor(logger, timestampValidator) {
22
25
  this.logger = logger;
26
+ this.timestampValidator = timestampValidator;
23
27
  }
24
28
  /**
25
29
  * Yield messages that are valid for processing (filter out internal bus lines)
@@ -27,9 +31,15 @@ let BusMessageFilter = exports.BusMessageFilter = class BusMessageFilter {
27
31
  * - route id is a number in range of bus and trolleybus lines
28
32
  * - route id >= 100 (bus) ∪ [50, 69] (trolleybus)
29
33
  */
30
- *yieldFilteredMessages(messages) {
34
+ *yieldFilteredMessages(messages, timestamp) {
31
35
  for (const message of messages) {
32
36
  const { run } = message;
37
+ if (!this.timestampValidator.isTimestampValid(timestamp, message.run_message.actual_stop_timestamp_real.toString())) {
38
+ this.logger.error(new golemio_errors_1.GeneralError("Message timestamp 'takt' of value" +
39
+ message.run_message.actual_stop_timestamp_real.toISOString() +
40
+ `is not valid for line ${message.run.line_short_name}, run ${message.run.run_number}`, this.constructor.name, undefined, undefined, "pid"));
41
+ continue;
42
+ }
33
43
  if (run.route_id.length > 2) {
34
44
  yield message;
35
45
  continue;
@@ -47,6 +57,7 @@ let BusMessageFilter = exports.BusMessageFilter = class BusMessageFilter {
47
57
  exports.BusMessageFilter = BusMessageFilter = __decorate([
48
58
  (0, tsyringe_1.injectable)(),
49
59
  __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
50
- __metadata("design:paramtypes", [Object])
60
+ __param(1, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.TimestampValidator)),
61
+ __metadata("design:paramtypes", [Object, TimestampValidator_1.TimestampValidator])
51
62
  ], BusMessageFilter);
52
63
  //# 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;AAGxE,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAG5B,IAAM,gBAAgB,8BAAtB,MAAM,gBAAgB;IACzB,YAA8C,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAEjE;;;;;OAKG;IACI,CAAC,qBAAqB,CAAC,QAAoC;QAC9D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;YACxB,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,MAAM,OAAO,CAAC;gBACd,SAAS;aACZ;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;gBACjG,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;aACZ;YAED,MAAM,OAAO,CAAC;SACjB;IACL,CAAC;CACJ,CAAA;2BA3BY,gBAAgB;IAD5B,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GAD5B,gBAAgB,CA2B5B"}
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;AAExE,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAG5B,IAAM,gBAAgB,8BAAtB,MAAM,gBAAgB;IACzB,YACsC,MAAe,EACI,kBAAsC;QADzD,WAAM,GAAN,MAAM,CAAS;QACI,uBAAkB,GAAlB,kBAAkB,CAAoB;IAC5F,CAAC;IAEJ;;;;;OAKG;IACI,CAAC,qBAAqB,CAAC,QAAoC,EAAE,SAAiB;QACjF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,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;gBACjH,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;aACZ;YACD,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,MAAM,OAAO,CAAC;gBACd,SAAS;aACZ;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;gBACjG,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;aACZ;YAED,MAAM,OAAO,CAAC;SACjB;IACL,CAAC;CACJ,CAAA;2BA7CY,gBAAgB;IAD5B,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,gBAAgB,CA6C5B"}
@@ -50,8 +50,8 @@ class CommonMessageProcessor {
50
50
  if (element.run_message.actual_stop_timestamp_scheduled instanceof Date &&
51
51
  element.run_message.actual_stop_timestamp_scheduled.getTime() - Date.now() >=
52
52
  MIN_HOURS_DIFF_TO_LOG * ONE_HOUR_IN_MILLIS) {
53
- this.logger.error(new golemio_errors_1.GeneralError(`Message timestamp 'tjr' of value '${element.run_message.actual_stop_timestamp_scheduled}' is 22+ hrs ` +
54
- `ahead (line ${element.run.line_short_name}, run ${element.run.run_number})`, this.constructor.name, undefined, undefined, "pid"));
53
+ this.logger.error(new golemio_errors_1.GeneralError(`Message timestamp 'tjr' of value '${element.run_message.actual_stop_timestamp_scheduled.toISOString()}` +
54
+ ` is 22+ hrs ahead (line ${element.run.line_short_name}, run ${element.run.run_number})`, this.constructor.name, undefined, undefined, "pid"));
55
55
  }
56
56
  }
57
57
  }
@@ -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,CAAO,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;gBACR,IACI,CAAC,OAAO,CAAC,WAAW,CAAC,+BAA+B;oBACpD,CAAC,yCAAiC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAC9E;oBACE,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;iBAC3G;gBAED,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;aAChF;iBAAM;gBACH,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;aACrE;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,CAAA,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;YACE,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,qCAAqC,OAAO,CAAC,WAAW,CAAC,+BAA+B,eAAe;gBACnG,eAAe,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAChF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,SAAS,EACT,KAAK,CACR,CACJ,CAAC;SACL;IACL,CAAC;CACJ;AAxDD,wDAwDC"}
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,CAAO,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;gBACR,IACI,CAAC,OAAO,CAAC,WAAW,CAAC,+BAA+B;oBACpD,CAAC,yCAAiC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAC9E;oBACE,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;iBAC3G;gBAED,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;aAChF;iBAAM;gBACH,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;aACrE;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,CAAA,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;YACE,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,qCAAqC,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,WAAW,EAAE,EAAE;gBACpG,2BAA2B,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAC5F,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,SAAS,EACT,KAAK,CACR,CACJ,CAAC;SACL;IACL,CAAC;CACJ;AAxDD,wDAwDC"}
@@ -0,0 +1,6 @@
1
+ import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
2
+ export declare class TimestampValidator {
3
+ private config;
4
+ constructor(config: ISimpleConfig);
5
+ isTimestampValid(now: number, timestamp: string): boolean;
6
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.TimestampValidator = void 0;
16
+ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
17
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
18
+ let TimestampValidator = exports.TimestampValidator = class TimestampValidator {
19
+ constructor(config) {
20
+ this.config = config;
21
+ }
22
+ isTimestampValid(now, timestamp) {
23
+ const convertedTimestamp = new Date(timestamp).getTime();
24
+ let convertedNow = new Date(now);
25
+ const before = convertedNow.setMinutes(convertedNow.getMinutes() -
26
+ Number(this.config.getValue("module.pid.vehicle-positions.tcpTimestampTolerance.beforeTimestamp", 120)));
27
+ convertedNow = new Date(now);
28
+ const after = convertedNow.setMinutes(convertedNow.getMinutes() +
29
+ Number(this.config.getValue("module.pid.vehicle-positions.tcpTimestampTolerance.afterTimestamp", 1)));
30
+ return convertedTimestamp >= before && convertedTimestamp <= after;
31
+ }
32
+ };
33
+ exports.TimestampValidator = TimestampValidator = __decorate([
34
+ (0, tsyringe_1.injectable)(),
35
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
36
+ __metadata("design:paramtypes", [Object])
37
+ ], TimestampValidator);
38
+ //# sourceMappingURL=TimestampValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimestampValidator.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/TimestampValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,wEAAqE;AACrE,iEAAwE;AAGjE,IAAM,kBAAkB,gCAAxB,MAAM,kBAAkB;IAC3B,YAAoD,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtE,gBAAgB,CAAC,GAAW,EAAE,SAAiB;QAClD,MAAM,kBAAkB,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QAEzD,IAAI,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAClC,YAAY,CAAC,UAAU,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oEAAoE,EAAE,GAAG,CAAC,CAAC,CAC9G,CAAC;QACF,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CACjC,YAAY,CAAC,UAAU,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mEAAmE,EAAE,CAAC,CAAC,CAAC,CAC3G,CAAC;QAEF,OAAO,kBAAkB,IAAI,MAAM,IAAI,kBAAkB,IAAI,KAAK,CAAC;IACvE,CAAC;CACJ,CAAA;6BApBY,kBAAkB;IAD9B,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;;GADlC,kBAAkB,CAoB9B"}
@@ -1,16 +1,19 @@
1
1
  import { ICommonRunWithMessageDto } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto";
2
2
  import { ILogger } from "@golemio/core/dist/helpers/logger";
3
3
  import { ICommonMessageFilter } from "./interfaces/ICommonMessageFilter";
4
+ import { TimestampValidator } from "./TimestampValidator";
4
5
  export declare class TramMessageFilter implements ICommonMessageFilter {
5
6
  private logger;
6
- constructor(logger: ILogger);
7
+ private timestampValidator;
8
+ constructor(logger: ILogger, timestampValidator: TimestampValidator);
7
9
  /**
8
10
  * Yield tram messages that are valid for processing
9
11
  * - route id is not considered a servicing route (50-89, note: >89 is a night tram route)
10
12
  * - run number is less than 80
11
13
  * - mazačka trams (maintanance) are always processed, even though they are servicing routes
14
+ * - timestamp is in acceptable range
12
15
  */
13
- yieldFilteredMessages(messages: ICommonRunWithMessageDto[]): Generator<ICommonRunWithMessageDto>;
16
+ yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): Generator<ICommonRunWithMessageDto>;
14
17
  private isRouteIdValid;
15
18
  private isRunNumberValid;
16
19
  }
@@ -16,22 +16,33 @@ exports.TramMessageFilter = void 0;
16
16
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
17
17
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
18
18
  const const_1 = require("../../../../../const");
19
+ const VPContainerToken_1 = require("../../../ioc/VPContainerToken");
20
+ const TimestampValidator_1 = require("./TimestampValidator");
21
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
19
22
  const TRAM_SERVICING_ROUTE_ID_MIN = 50;
20
23
  const TRAM_SERVICING_ROUTE_ID_MAX = 89;
21
24
  const TRAM_UNUSUAL_RUN_NUMBER_MIN = 80;
22
25
  let TramMessageFilter = exports.TramMessageFilter = class TramMessageFilter {
23
- constructor(logger) {
26
+ constructor(logger, timestampValidator) {
24
27
  this.logger = logger;
28
+ this.timestampValidator = timestampValidator;
25
29
  }
26
30
  /**
27
31
  * Yield tram messages that are valid for processing
28
32
  * - route id is not considered a servicing route (50-89, note: >89 is a night tram route)
29
33
  * - run number is less than 80
30
34
  * - mazačka trams (maintanance) are always processed, even though they are servicing routes
35
+ * - timestamp is in acceptable range
31
36
  */
32
- *yieldFilteredMessages(messages) {
37
+ *yieldFilteredMessages(messages, timestamp) {
33
38
  for (const message of messages) {
34
39
  const { route_id, run_number, registration_number } = message.run;
40
+ if (!this.timestampValidator.isTimestampValid(timestamp, message.run_message.actual_stop_timestamp_real.toString())) {
41
+ 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"));
44
+ continue;
45
+ }
35
46
  if (const_1.ArrayNotPublicRegistrationNumbers.includes(registration_number) ||
36
47
  (this.isRouteIdValid(route_id) && this.isRunNumberValid(run_number))) {
37
48
  yield message;
@@ -55,6 +66,7 @@ let TramMessageFilter = exports.TramMessageFilter = class TramMessageFilter {
55
66
  exports.TramMessageFilter = TramMessageFilter = __decorate([
56
67
  (0, tsyringe_1.injectable)(),
57
68
  __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
58
- __metadata("design:paramtypes", [Object])
69
+ __param(1, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.TimestampValidator)),
70
+ __metadata("design:paramtypes", [Object, TimestampValidator_1.TimestampValidator])
59
71
  ], TramMessageFilter);
60
72
  //# 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;AAG9D,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAGhC,IAAM,iBAAiB,+BAAvB,MAAM,iBAAiB;IAC1B,YAA8C,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAEjE;;;;;OAKG;IACI,CAAC,qBAAqB,CAAC,QAAoC;QAC9D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;YAElE,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;gBACE,MAAM,OAAO,CAAC;aACjB;iBAAM;gBACH,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;gBAC3B,SAAS;aACZ;SACJ;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;4BArCY,iBAAiB;IAD7B,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GAD5B,iBAAiB,CAqC7B"}
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,+BAAvB,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;YAC5B,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;gBACjH,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;aACZ;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;gBACE,MAAM,OAAO,CAAC;aACjB;iBAAM;gBACH,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;gBAC3B,SAAS;aACZ;SACJ;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;4BAxDY,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,CAwD7B"}
@@ -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[]): Generator<ICommonRunWithMessageDto>;
3
+ yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): Generator<ICommonRunWithMessageDto>;
4
4
  }
@@ -1,14 +1,13 @@
1
1
  import { IRegionalBusRunsMessagesModel } from "../../../../../../schema-definitions/vehicle-positions/models/interfaces/IRegionalBusRunsMessagesModel";
2
- import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
3
2
  import { ILogger } from "@golemio/core/dist/helpers/logger";
4
3
  import { IRegionalBusMessageFilter } from "./interfaces/IRegionalBusMessageFilter";
4
+ import { TimestampValidator } from "../TimestampValidator";
5
5
  export declare class RegionalBusMessageFilter implements IRegionalBusMessageFilter {
6
- private config;
7
6
  private logger;
8
- constructor(config: ISimpleConfig, logger: ILogger);
7
+ private timestampValidator;
8
+ constructor(logger: ILogger, timestampValidator: TimestampValidator);
9
9
  /**
10
10
  * Get messages that are valid for processing
11
11
  */
12
- getFilteredMessages(messages: IRegionalBusRunsMessagesModel[]): IRegionalBusRunsMessagesModel[];
13
- private get regNumberWhitelist();
12
+ getFilteredMessages(messages: IRegionalBusRunsMessagesModel[], timestamp: number): IRegionalBusRunsMessagesModel[];
14
13
  }
@@ -15,24 +15,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.RegionalBusMessageFilter = void 0;
16
16
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
17
17
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
18
+ const VPContainerToken_1 = require("../../../../ioc/VPContainerToken");
19
+ const TimestampValidator_1 = require("../TimestampValidator");
20
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
18
21
  let RegionalBusMessageFilter = exports.RegionalBusMessageFilter = class RegionalBusMessageFilter {
19
- constructor(config, logger) {
20
- this.config = config;
22
+ constructor(logger, timestampValidator) {
21
23
  this.logger = logger;
24
+ this.timestampValidator = timestampValidator;
22
25
  }
23
26
  /**
24
27
  * Get messages that are valid for processing
25
28
  */
26
- getFilteredMessages(messages) {
29
+ getFilteredMessages(messages, timestamp) {
27
30
  let filteredMessages = [];
28
31
  for (const message of messages) {
29
- if (message.cis_line_id && message.cis_trip_number && message.registration_number && message.events !== "") {
30
- if (this.regNumberWhitelist && !this.regNumberWhitelist.includes(message.registration_number.toString())) {
31
- this.logger.verbose(
32
- // eslint-disable-next-line max-len
33
- `getFilteredMessages: message with registration_number=${message.registration_number} is not in whitelist, skipping`);
34
- continue;
35
- }
32
+ const isValidMessage = message.cis_line_id && message.cis_trip_number && message.registration_number && message.events !== "";
33
+ if (!this.timestampValidator.isTimestampValid(timestamp, message.timestamp)) {
34
+ this.logger.error(new golemio_errors_1.GeneralError(`Message timestamp 'tm' of value ${message.timestamp} is not valid ` +
35
+ `(line ${message.cis_line_id}, trip id ${message.cis_trip_number})`, this.constructor.name, undefined, undefined, "pid"));
36
+ continue;
37
+ }
38
+ if (isValidMessage) {
36
39
  filteredMessages.push(message);
37
40
  }
38
41
  }
@@ -41,20 +44,11 @@ let RegionalBusMessageFilter = exports.RegionalBusMessageFilter = class Regional
41
44
  }
42
45
  return filteredMessages;
43
46
  }
44
- get regNumberWhitelist() {
45
- const valuePath = "old.datasources.pid.vehicle-positions.regNumberWhitelist.regionalBus";
46
- const whitelistDict = this.config.getValue(valuePath, {});
47
- const whitelist = Object.values(whitelistDict);
48
- if (whitelist[0] !== "*") {
49
- return whitelist;
50
- }
51
- return null;
52
- }
53
47
  };
54
48
  exports.RegionalBusMessageFilter = RegionalBusMessageFilter = __decorate([
55
49
  (0, tsyringe_1.injectable)(),
56
- __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
57
- __param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
58
- __metadata("design:paramtypes", [Object, Object])
50
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
51
+ __param(1, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.TimestampValidator)),
52
+ __metadata("design:paramtypes", [Object, TimestampValidator_1.TimestampValidator])
59
53
  ], RegionalBusMessageFilter);
60
54
  //# sourceMappingURL=RegionalBusMessageFilter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RegionalBusMessageFilter.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,wEAAqE;AAErE,iEAAwE;AAIjE,IAAM,wBAAwB,sCAA9B,MAAM,wBAAwB;IACjC,YAC4C,MAAqB,EAC3B,MAAe;QADT,WAAM,GAAN,MAAM,CAAe;QAC3B,WAAM,GAAN,MAAM,CAAS;IAClD,CAAC;IAEJ;;OAEG;IACI,mBAAmB,CAAC,QAAyC;QAChE,IAAI,gBAAgB,GAAoC,EAAE,CAAC;QAC3D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;gBACxG,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,EAAE;oBACtG,IAAI,CAAC,MAAM,CAAC,OAAO;oBACf,mCAAmC;oBACnC,yDAAyD,OAAO,CAAC,mBAAmB,gCAAgC,CACvH,CAAC;oBACF,SAAS;iBACZ;gBAED,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAClC;SACJ;QAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC;SAChF;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,IAAY,kBAAkB;QAC1B,MAAM,SAAS,GAAG,sEAAsE,CAAC;QACzF,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAyB,SAAS,EAAE,EAAE,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAE/C,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACtB,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;mCA3CY,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;IAC9B,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GAHpB,wBAAwB,CA2CpC"}
1
+ {"version":3,"file":"RegionalBusMessageFilter.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,wEAAqE;AAErE,iEAAwE;AAExE,uEAA8E;AAC9E,8DAA2D;AAC3D,6EAAwE;AAGjE,IAAM,wBAAwB,sCAA9B,MAAM,wBAAwB;IACjC,YACsC,MAAe,EACI,kBAAsC;QADzD,WAAM,GAAN,MAAM,CAAS;QACI,uBAAkB,GAAlB,kBAAkB,CAAoB;IAC5F,CAAC;IAEJ;;OAEG;IACI,mBAAmB,CAAC,QAAyC,EAAE,SAAiB;QACnF,IAAI,gBAAgB,GAAoC,EAAE,CAAC;QAC3D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,MAAM,cAAc,GAChB,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,CAAC;YAC3G,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,SAAU,CAAC,EAAE;gBAC1E,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,mCAAmC,OAAO,CAAC,SAAS,gBAAgB;oBAChE,SAAS,OAAO,CAAC,WAAW,aAAa,OAAO,CAAC,eAAe,GAAG,EACvE,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,SAAS,EACT,KAAK,CACR,CACJ,CAAC;gBACF,SAAS;aACZ;YAED,IAAI,cAAc,EAAE;gBAChB,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAClC;SACJ;QAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC;SAChF;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC;CACJ,CAAA;mCAvCY,wBAAwB;IADpC,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,wBAAwB,CAuCpC"}
@@ -1,15 +1,15 @@
1
1
  import { IRegionalBusRunsMessagesModel } from "../../../../../../schema-definitions/vehicle-positions/models/interfaces/IRegionalBusRunsMessagesModel";
2
2
  import { IModel } from "@golemio/core/dist/integration-engine/models";
3
- import { IRegionalBusRunsMessagePropertiesWrapper } from "../../interfaces/RegionalBusRunsMessageInterfaces";
3
+ import { ITransformationInput } from "../../interfaces/RegionalBusRunsMessageInterfaces";
4
4
  import { RegionalBusRunsMessagesTransformation } from "../../transformations/RegionalBusRunsMessagesTransformation";
5
5
  import { ICisLookupManager } from "./interfaces/ICisLookupManager";
6
- import { IRegionalBusMessageFilter } from "./interfaces/IRegionalBusMessageFilter";
7
6
  import { IRegionalBusRunsFacade } from "./interfaces/IRegionalBusRunsFacade";
7
+ import { RegionalBusMessageFilter } from "./RegionalBusMessageFilter";
8
8
  export declare class RegionalBusRunsFacade implements IRegionalBusRunsFacade {
9
9
  private messageTransformation;
10
10
  private messageRepository;
11
11
  private messageFilter;
12
12
  private cisLookupManager;
13
- constructor(messageTransformation: RegionalBusRunsMessagesTransformation, messageRepository: IModel, messageFilter: IRegionalBusMessageFilter, cisLookupManager: ICisLookupManager);
14
- transformAndSaveMessages(messages: IRegionalBusRunsMessagePropertiesWrapper[]): Promise<IRegionalBusRunsMessagesModel[]>;
13
+ constructor(messageTransformation: RegionalBusRunsMessagesTransformation, messageRepository: IModel, messageFilter: RegionalBusMessageFilter, cisLookupManager: ICisLookupManager);
14
+ transformAndSaveMessages({ messages, timestamp, }: ITransformationInput): Promise<IRegionalBusRunsMessagesModel[]>;
15
15
  }
@@ -26,6 +26,7 @@ const VPContainerToken_1 = require("../../../../ioc/VPContainerToken");
26
26
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
27
27
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
28
28
  const RegionalBusRunsMessagesTransformation_1 = require("../../transformations/RegionalBusRunsMessagesTransformation");
29
+ const RegionalBusMessageFilter_1 = require("./RegionalBusMessageFilter");
29
30
  let RegionalBusRunsFacade = exports.RegionalBusRunsFacade = class RegionalBusRunsFacade {
30
31
  constructor(messageTransformation, messageRepository, messageFilter, cisLookupManager) {
31
32
  this.messageTransformation = messageTransformation;
@@ -33,7 +34,7 @@ let RegionalBusRunsFacade = exports.RegionalBusRunsFacade = class RegionalBusRun
33
34
  this.messageFilter = messageFilter;
34
35
  this.cisLookupManager = cisLookupManager;
35
36
  }
36
- transformAndSaveMessages(messages) {
37
+ transformAndSaveMessages({ messages, timestamp, }) {
37
38
  return __awaiter(this, void 0, void 0, function* () {
38
39
  let transformedMessages = this.messageTransformation.transformArray(messages);
39
40
  if (transformedMessages.length === 0) {
@@ -45,7 +46,7 @@ let RegionalBusRunsFacade = exports.RegionalBusRunsFacade = class RegionalBusRun
45
46
  catch (err) {
46
47
  throw new golemio_errors_1.GeneralError("transformAndFilterMessages: failed to enrich messages with CIS data", this.constructor.name, err);
47
48
  }
48
- const filteredMessages = this.messageFilter.getFilteredMessages(transformedMessages);
49
+ const filteredMessages = this.messageFilter.getFilteredMessages(transformedMessages, timestamp);
49
50
  yield this.messageRepository.bulkSave(filteredMessages);
50
51
  return filteredMessages;
51
52
  });
@@ -57,6 +58,6 @@ exports.RegionalBusRunsFacade = RegionalBusRunsFacade = __decorate([
57
58
  __param(1, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.RegionalBusRunsMessagesRepository)),
58
59
  __param(2, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.RegionalBusMessageFilter)),
59
60
  __param(3, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.CisLookupManager)),
60
- __metadata("design:paramtypes", [RegionalBusRunsMessagesTransformation_1.RegionalBusRunsMessagesTransformation, Object, Object, Object])
61
+ __metadata("design:paramtypes", [RegionalBusRunsMessagesTransformation_1.RegionalBusRunsMessagesTransformation, Object, RegionalBusMessageFilter_1.RegionalBusMessageFilter, Object])
61
62
  ], RegionalBusRunsFacade);
62
63
  //# sourceMappingURL=RegionalBusRunsFacade.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RegionalBusRunsFacade.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusRunsFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uEAA8E;AAG9E,6EAAwE;AACxE,iEAAwE;AAExE,uHAAoH;AAM7G,IAAM,qBAAqB,mCAA3B,MAAM,qBAAqB;IAC9B,YAEY,qBAA4D,EAE5D,iBAAyB,EAEzB,aAAwC,EAExC,gBAAmC;QANnC,0BAAqB,GAArB,qBAAqB,CAAuC;QAE5D,sBAAiB,GAAjB,iBAAiB,CAAQ;QAEzB,kBAAa,GAAb,aAAa,CAA2B;QAExC,qBAAgB,GAAhB,gBAAgB,CAAmB;IAC5C,CAAC;IAES,wBAAwB,CACjC,QAAoD;;YAEpD,IAAI,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC9E,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,OAAO,EAAE,CAAC;aACb;YAED,IAAI;gBACA,mBAAmB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;aACpG;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAClB,qEAAqE,EACrE,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;aACL;YAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;YACrF,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAExD,OAAO,gBAAgB,CAAC;QAC5B,CAAC;KAAA;CACJ,CAAA;gCAnCY,qBAAqB;IADjC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,mCAAgB,CAAC,qCAAqC,CAAC,CAAA;IAE9D,WAAA,IAAA,iBAAM,EAAC,mCAAgB,CAAC,iCAAiC,CAAC,CAAA;IAE1D,WAAA,IAAA,iBAAM,EAAC,mCAAgB,CAAC,wBAAwB,CAAC,CAAA;IAEjD,WAAA,IAAA,iBAAM,EAAC,mCAAgB,CAAC,gBAAgB,CAAC,CAAA;qCALX,6EAAqC;GAH/D,qBAAqB,CAmCjC"}
1
+ {"version":3,"file":"RegionalBusRunsFacade.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusRunsFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uEAA8E;AAG9E,6EAAwE;AACxE,iEAAwE;AAExE,uHAAoH;AAIpH,yEAAsE;AAG/D,IAAM,qBAAqB,mCAA3B,MAAM,qBAAqB;IAC9B,YAEY,qBAA4D,EAE5D,iBAAyB,EAEzB,aAAuC,EAEvC,gBAAmC;QANnC,0BAAqB,GAArB,qBAAqB,CAAuC;QAE5D,sBAAiB,GAAjB,iBAAiB,CAAQ;QAEzB,kBAAa,GAAb,aAAa,CAA0B;QAEvC,qBAAgB,GAAhB,gBAAgB,CAAmB;IAC5C,CAAC;IAES,wBAAwB,CAAC,EAClC,QAAQ,EACR,SAAS,GACU;;YACnB,IAAI,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC9E,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,OAAO,EAAE,CAAC;aACb;YAED,IAAI;gBACA,mBAAmB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;aACpG;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAClB,qEAAqE,EACrE,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;aACL;YAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;YAChG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAExD,OAAO,gBAAgB,CAAC;QAC5B,CAAC;KAAA;CACJ,CAAA;gCApCY,qBAAqB;IADjC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,mCAAgB,CAAC,qCAAqC,CAAC,CAAA;IAE9D,WAAA,IAAA,iBAAM,EAAC,mCAAgB,CAAC,iCAAiC,CAAC,CAAA;IAE1D,WAAA,IAAA,iBAAM,EAAC,mCAAgB,CAAC,wBAAwB,CAAC,CAAA;IAEjD,WAAA,IAAA,iBAAM,EAAC,mCAAgB,CAAC,gBAAgB,CAAC,CAAA;qCALX,6EAAqC,UAI7C,mDAAwB;GAP1C,qBAAqB,CAoCjC"}
@@ -1,4 +1,4 @@
1
1
  import { IRegionalBusRunsMessagesModel } from "../../../../../../../schema-definitions/vehicle-positions/models/interfaces/IRegionalBusRunsMessagesModel";
2
2
  export interface IRegionalBusMessageFilter {
3
- getFilteredMessages(messages: IRegionalBusRunsMessagesModel[]): IRegionalBusRunsMessagesModel[];
3
+ getFilteredMessages(messages: IRegionalBusRunsMessagesModel[], timestamp: number): IRegionalBusRunsMessagesModel[];
4
4
  }
@@ -1,5 +1,5 @@
1
1
  import { IRegionalBusRunsMessagesModel } from "../../../../../../../schema-definitions/vehicle-positions/models/interfaces/IRegionalBusRunsMessagesModel";
2
- import { IRegionalBusRunsMessagePropertiesWrapper } from "../../../interfaces/RegionalBusRunsMessageInterfaces";
2
+ import { ITransformationInput } from "../../../interfaces/RegionalBusRunsMessageInterfaces";
3
3
  export interface IRegionalBusRunsFacade {
4
- transformAndSaveMessages(messages: IRegionalBusRunsMessagePropertiesWrapper[]): Promise<IRegionalBusRunsMessagesModel[]>;
4
+ transformAndSaveMessages(data: ITransformationInput): Promise<IRegionalBusRunsMessagesModel[]>;
5
5
  }
@@ -20,3 +20,6 @@ export interface IMetroRunsMessageContent {
20
20
  export interface IMetroRunsInput {
21
21
  m: IMetroRunsMessageContent;
22
22
  }
23
+ export interface IMetroRunsInputData {
24
+ data: IMetroRunsInput;
25
+ }
@@ -19,3 +19,7 @@ export interface IRegionalBusRunsMessageProperties {
19
19
  rych: string;
20
20
  smer: string;
21
21
  }
22
+ export interface ITransformationInput {
23
+ messages: IRegionalBusRunsMessagePropertiesWrapper[];
24
+ timestamp: number;
25
+ }
@@ -54,6 +54,10 @@ __decorate([
54
54
  (0, class_validator_1.IsBoolean)(),
55
55
  __metadata("design:type", Boolean)
56
56
  ], RegionalBusTransformedRunMessagesValidationSchema.prototype, "is_terminated", void 0);
57
+ __decorate([
58
+ (0, class_validator_1.IsString)(),
59
+ __metadata("design:type", String)
60
+ ], RegionalBusTransformedRunMessagesValidationSchema.prototype, "timestamp", void 0);
57
61
  class RegionalBusTransformedRunsValidationSchema {
58
62
  }
59
63
  exports.RegionalBusTransformedRunsValidationSchema = RegionalBusTransformedRunsValidationSchema;