@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.
- package/db/migrations/postgresql/20240519214722-data-retention-valid-to-check.js +53 -0
- package/db/migrations/postgresql/sqls/20240519214722-data-retention-valid-to-check-down.sql +76 -0
- package/db/migrations/postgresql/sqls/20240519214722-data-retention-valid-to-check-up.sql +76 -0
- package/dist/integration-engine/index.d.ts +0 -1
- package/dist/integration-engine/index.js +0 -4
- package/dist/integration-engine/index.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/index.d.ts +0 -1
- package/dist/integration-engine/ropid-gtfs/index.js +0 -1
- package/dist/integration-engine/ropid-gtfs/index.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/ioc/Di.js +6 -0
- package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +3 -0
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +3 -0
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/presets/PresetWorker.d.ts +3 -1
- package/dist/integration-engine/ropid-gtfs/workers/presets/PresetWorker.js +8 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/PresetWorker.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/presets/data-access/DeparturesPresetsDatasource.d.ts +12 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/data-access/DeparturesPresetsDatasource.js +44 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/data-access/DeparturesPresetsDatasource.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/CheckForNewDeparturesPresetsTask.d.ts +11 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/CheckForNewDeparturesPresetsTask.js +69 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/CheckForNewDeparturesPresetsTask.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/DownloadDeparturesPresetsTask.d.ts +11 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/DownloadDeparturesPresetsTask.js +66 -0
- package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/DownloadDeparturesPresetsTask.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/ioc/Di.js +14 -0
- package/dist/integration-engine/vehicle-positions/ioc/Di.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.d.ts +7 -0
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js +7 -0
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/RunsWorker.js +4 -8
- package/dist/integration-engine/vehicle-positions/workers/runs/RunsWorker.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.d.ts +4 -2
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js +14 -3
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js +2 -2
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TimestampValidator.d.ts +6 -0
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TimestampValidator.js +38 -0
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TimestampValidator.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.d.ts +5 -2
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js +15 -3
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/interfaces/ICommonMessageFilter.d.ts +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.d.ts +4 -5
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.js +16 -22
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusRunsFacade.d.ts +4 -4
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusRunsFacade.js +4 -3
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusRunsFacade.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/interfaces/IRegionalBusMessageFilter.d.ts +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/interfaces/IRegionalBusRunsFacade.d.ts +2 -2
- package/dist/integration-engine/vehicle-positions/workers/runs/interfaces/MetroRunsMessageInterfaces.d.ts +3 -0
- package/dist/integration-engine/vehicle-positions/workers/runs/interfaces/RegionalBusRunsMessageInterfaces.d.ts +4 -0
- package/dist/integration-engine/vehicle-positions/workers/runs/schema/RegionalBusTransformedRunsSchema.js +4 -0
- package/dist/integration-engine/vehicle-positions/workers/runs/schema/RegionalBusTransformedRunsSchema.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunMessagesTask.d.ts +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunMessagesTask.js +19 -5
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunMessagesTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveArrivaCityRunsToDBTask.d.ts +2 -2
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveArrivaCityRunsToDBTask.js +11 -2
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveArrivaCityRunsToDBTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.d.ts +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js +21 -8
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveMetroRunsToDBTask.d.ts +5 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveMetroRunsToDBTask.js +42 -8
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveMetroRunsToDBTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.d.ts +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js +21 -8
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js +20 -6
- package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/transformations/MetroRunsMessagesTransformation.d.ts +2 -2
- package/dist/integration-engine/vehicle-positions/workers/runs/transformations/MetroRunsMessagesTransformation.js +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/transformations/MetroRunsMessagesTransformation.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/transformations/RegionalBusRunsMessagesTransformation.js +1 -0
- package/dist/integration-engine/vehicle-positions/workers/runs/transformations/RegionalBusRunsMessagesTransformation.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicStopTimeCacheTask.d.ts +0 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicStopTimeCacheTask.js +0 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicStopTimeCacheTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.d.ts +3 -6
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.js +8 -19
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.js.map +1 -1
- package/dist/schema-definitions/vehicle-positions/models/interfaces/IRegionalBusRunsMessagesModel.d.ts +1 -0
- package/docs/implementation_documentation.md +32 -1
- package/package.json +2 -2
- package/dist/integration-engine/queueDefinitions.d.ts +0 -6
- package/dist/integration-engine/queueDefinitions.js +0 -40
- package/dist/integration-engine/queueDefinitions.js.map +0 -1
- package/dist/integration-engine/ropid-gtfs/LegacyRopidGTFSWorker.d.ts +0 -19
- package/dist/integration-engine/ropid-gtfs/LegacyRopidGTFSWorker.js +0 -79
- 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":";;;AAAA,qCAA0C;AAC1C,kIAA6H;AAE7H,qHAAkH;AAClH,mHAAgH;AAChH,qHAAkH;AAClH,+EAA4E;AAC5E,iFAA8E;AAC9E,4FAAyF;AACzF,8FAA2F;AAC3F,4GAAyG;AACzG,sGAAmG;AACnG,kGAA+F;AAC/F,+GAA4G;AAC5G,iGAA8F;AAC9F,iIAA8H;AAC9H,0GAAuG;AACvG,wHAAqH;AACrH,kJAA+I;AAC/I,8FAA2F;AAC3F,wGAAqG;AACrG,sHAAmH;AACnH,8FAA2F;AAC3F,sHAAmH;AACnH,gIAA6H;AAC7H,0HAAuH;AACvH,sHAAmH;AACnH,2HAAwH;AACxH,8HAA2H;AAC3H,4GAAyG;AACzG,wGAAqG;AACrG,sHAAmH;AACnH,8GAA2G;AAC3G,0HAAuH;AACvH,yDAAsD;
|
|
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(
|
|
24
|
-
this.registerTask(
|
|
25
|
-
this.registerTask(
|
|
26
|
-
this.registerTask(
|
|
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;
|
|
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"}
|
package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.d.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js
CHANGED
|
@@ -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}
|
|
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
|
}
|
package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js.map
CHANGED
|
@@ -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,
|
|
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,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
|
package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TimestampValidator.js.map
ADDED
|
@@ -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"}
|
package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.d.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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.
|
|
57
|
-
__param(1, (0, tsyringe_1.inject)(
|
|
58
|
-
__metadata("design:paramtypes", [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":";;;;;;;;;;;;;;;
|
|
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 {
|
|
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:
|
|
14
|
-
transformAndSaveMessages(messages:
|
|
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,
|
|
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;
|
|
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 {
|
|
2
|
+
import { ITransformationInput } from "../../../interfaces/RegionalBusRunsMessageInterfaces";
|
|
3
3
|
export interface IRegionalBusRunsFacade {
|
|
4
|
-
transformAndSaveMessages(
|
|
4
|
+
transformAndSaveMessages(data: ITransformationInput): Promise<IRegionalBusRunsMessagesModel[]>;
|
|
5
5
|
}
|
|
@@ -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;
|