@golemio/pid 2.13.3 → 2.13.4-dev.1297347910
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/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
|
@@ -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;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegionalBusTransformedRunsSchema.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/schema/RegionalBusTransformedRunsSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mFAAmE;AACnE,+EAQmD;AAOnD,MAAM,iDAAiD;
|
|
1
|
+
{"version":3,"file":"RegionalBusTransformedRunsSchema.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/schema/RegionalBusTransformedRunsSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mFAAmE;AACnE,+EAQmD;AAOnD,MAAM,iDAAiD;CAiCtD;AA/BG;IADC,IAAA,0BAAQ,GAAE;;2FACe;AAG1B;IADC,IAAA,0BAAQ,GAAE;;sFACU;AAGrB;IADC,IAAA,0BAAQ,GAAE;;0FACc;AAGzB;IADC,IAAA,0BAAQ,GAAE;;iFACK;AAGhB;IADC,IAAA,0BAAQ,GAAE;;sFACS;AAGpB;IADC,IAAA,2BAAS,GAAE;8BACQ,IAAI;4FAAC;AAGzB;IADC,IAAA,0BAAQ,GAAE;;8FACkB;AAG7B;IADC,IAAA,0BAAQ,GAAE;;oFACQ;AAGnB;IADC,IAAA,0BAAQ,GAAE;;kFACM;AAGjB;IADC,IAAA,2BAAS,GAAE;;wFACY;AAGxB;IADC,IAAA,0BAAQ,GAAE;;oFACQ;AAGvB,MAAa,0CAA0C;CAMtD;AAND,gGAMC;AADG;IAJC,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,iDAAiD,CAAC;;4EACnB"}
|
|
@@ -14,7 +14,7 @@ export declare class ProcessMetroRunMessagesTask extends AbstractTask<IProcessMe
|
|
|
14
14
|
private readonly runTripsRedisRepository;
|
|
15
15
|
private readonly gtfsTripRunManager;
|
|
16
16
|
private readonly tripScheduleRepository;
|
|
17
|
-
constructor(
|
|
17
|
+
constructor();
|
|
18
18
|
protected execute({ routeName, messages }: IProcessMetroRunsMessagesInput, msgProperties?: MessageProperties): Promise<void>;
|
|
19
19
|
private processMessage;
|
|
20
20
|
private enrichRunMessage;
|
package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunMessagesTask.js
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
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
|
+
};
|
|
2
11
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
12
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
13
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -25,9 +34,11 @@ const CommonRunsRepository_1 = require("../data-access/CommonRunsRepository");
|
|
|
25
34
|
const MetroMessageFilter_1 = require("../helpers/MetroMessageFilter");
|
|
26
35
|
const MetroTransformedRunsSchema_1 = require("../schema/MetroTransformedRunsSchema");
|
|
27
36
|
const MetroRunsMessageProcessingTransformation_1 = require("../transformations/MetroRunsMessageProcessingTransformation");
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
37
|
+
const constants_1 = require("../constants");
|
|
38
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
39
|
+
let ProcessMetroRunMessagesTask = exports.ProcessMetroRunMessagesTask = class ProcessMetroRunMessagesTask extends integration_engine_1.AbstractTask {
|
|
40
|
+
constructor() {
|
|
41
|
+
super(constants_1.WORKER_NAME);
|
|
31
42
|
this.queueName = "processMetroRunMessages";
|
|
32
43
|
this.queueTtl = 10 * 60 * 1000; // 10 minutes
|
|
33
44
|
this.schema = MetroTransformedRunsSchema_1.MetroTransformedRunsValidationSchema;
|
|
@@ -99,6 +110,9 @@ class ProcessMetroRunMessagesTask extends integration_engine_1.AbstractTask {
|
|
|
99
110
|
return Object.assign(Object.assign({}, runInput), { tripId: tripSchedule.trip_id, internalRunNumber: tripSchedule.run_number });
|
|
100
111
|
});
|
|
101
112
|
}
|
|
102
|
-
}
|
|
103
|
-
exports.ProcessMetroRunMessagesTask = ProcessMetroRunMessagesTask
|
|
113
|
+
};
|
|
114
|
+
exports.ProcessMetroRunMessagesTask = ProcessMetroRunMessagesTask = __decorate([
|
|
115
|
+
(0, tsyringe_1.injectable)(),
|
|
116
|
+
__metadata("design:paramtypes", [])
|
|
117
|
+
], ProcessMetroRunMessagesTask);
|
|
104
118
|
//# sourceMappingURL=ProcessMetroRunMessagesTask.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProcessMetroRunMessagesTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunMessagesTask.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProcessMetroRunMessagesTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunMessagesTask.ts"],"names":[],"mappings":"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"}
|
package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveArrivaCityRunsToDBTask.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { AbstractTask } from "@golemio/core/dist/integration-engine/workers";
|
|
2
2
|
import { MessageProperties } from "amqplib";
|
|
3
|
-
import { IRegionalBusRunsFacade } from "../helpers/regional-bus/interfaces/IRegionalBusRunsFacade";
|
|
4
3
|
import { IRegionalBusRunsInput } from "../interfaces/RegionalBusRunsMessageInterfaces";
|
|
5
4
|
import { RegionalBusRunsValidationSchema } from "../schema/RegionalBusRunsSchema";
|
|
5
|
+
import { RegionalBusRunsFacade } from "../helpers/regional-bus/RegionalBusRunsFacade";
|
|
6
6
|
export declare class SaveArrivaCityRunsToDBTask extends AbstractTask<IRegionalBusRunsInput> {
|
|
7
7
|
private regionalBusRunsFacade;
|
|
8
8
|
readonly queueName = "saveArrivaCityRunsToDB";
|
|
9
9
|
readonly queueTtl: number;
|
|
10
10
|
readonly schema: typeof RegionalBusRunsValidationSchema;
|
|
11
|
-
constructor(regionalBusRunsFacade:
|
|
11
|
+
constructor(regionalBusRunsFacade: RegionalBusRunsFacade);
|
|
12
12
|
protected execute(data: IRegionalBusRunsInput, msgProperties?: MessageProperties): Promise<void>;
|
|
13
13
|
}
|
package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveArrivaCityRunsToDBTask.js
CHANGED
|
@@ -28,6 +28,8 @@ const workers_1 = require("@golemio/core/dist/integration-engine/workers");
|
|
|
28
28
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
29
29
|
const constants_1 = require("../constants");
|
|
30
30
|
const RegionalBusRunsSchema_1 = require("../schema/RegionalBusRunsSchema");
|
|
31
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
32
|
+
const RegionalBusRunsFacade_1 = require("../helpers/regional-bus/RegionalBusRunsFacade");
|
|
31
33
|
let SaveArrivaCityRunsToDBTask = exports.SaveArrivaCityRunsToDBTask = class SaveArrivaCityRunsToDBTask extends workers_1.AbstractTask {
|
|
32
34
|
constructor(regionalBusRunsFacade) {
|
|
33
35
|
super(constants_1.WORKER_NAME);
|
|
@@ -39,7 +41,14 @@ let SaveArrivaCityRunsToDBTask = exports.SaveArrivaCityRunsToDBTask = class Save
|
|
|
39
41
|
execute(data, msgProperties) {
|
|
40
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
41
43
|
const inputMessages = Array.isArray(data.M.V) ? data.M.V : [data.M.V];
|
|
42
|
-
const
|
|
44
|
+
const timestamp = msgProperties === null || msgProperties === void 0 ? void 0 : msgProperties.timestamp;
|
|
45
|
+
if (!timestamp) {
|
|
46
|
+
throw new golemio_errors_1.GeneralError(`Missing ArrivaCity run message timestamp: ${JSON.stringify(data)}`, this.constructor.name);
|
|
47
|
+
}
|
|
48
|
+
const transformedMessages = yield this.regionalBusRunsFacade.transformAndSaveMessages({
|
|
49
|
+
messages: inputMessages,
|
|
50
|
+
timestamp,
|
|
51
|
+
});
|
|
43
52
|
if (transformedMessages.length === 0) {
|
|
44
53
|
return;
|
|
45
54
|
}
|
|
@@ -52,6 +61,6 @@ let SaveArrivaCityRunsToDBTask = exports.SaveArrivaCityRunsToDBTask = class Save
|
|
|
52
61
|
exports.SaveArrivaCityRunsToDBTask = SaveArrivaCityRunsToDBTask = __decorate([
|
|
53
62
|
(0, tsyringe_1.injectable)(),
|
|
54
63
|
__param(0, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.RegionalBusRunsFacade)),
|
|
55
|
-
__metadata("design:paramtypes", [
|
|
64
|
+
__metadata("design:paramtypes", [RegionalBusRunsFacade_1.RegionalBusRunsFacade])
|
|
56
65
|
], SaveArrivaCityRunsToDBTask);
|
|
57
66
|
//# sourceMappingURL=SaveArrivaCityRunsToDBTask.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveArrivaCityRunsToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/SaveArrivaCityRunsToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAA8E;AAC9E,2FAAqF;AACrF,2EAA6E;AAC7E,iEAAwE;AAExE,4CAA2C;
|
|
1
|
+
{"version":3,"file":"SaveArrivaCityRunsToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/SaveArrivaCityRunsToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAA8E;AAC9E,2FAAqF;AACrF,2EAA6E;AAC7E,iEAAwE;AAExE,4CAA2C;AAE3C,2EAAkF;AAClF,6EAAwE;AACxE,yFAAsF;AAG/E,IAAM,0BAA0B,wCAAhC,MAAM,0BAA2B,SAAQ,sBAAmC;IAK/E,YAA4D,qBAAoD;QAC5G,KAAK,CAAC,uBAAW,CAAC,CAAC;QAD6C,0BAAqB,GAArB,qBAAqB,CAAuB;QAJhG,cAAS,GAAG,wBAAwB,CAAC;QACrC,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QACtC,WAAM,GAAG,uDAA+B,CAAC;IAIzD,CAAC;IAEe,OAAO,CAAC,IAA2B,EAAE,aAAiC;;YAClF,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,CAAC;YAC3C,IAAI,CAAC,SAAS,EAAE;gBACZ,MAAM,IAAI,6BAAY,CAAC,6CAA6C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACtH;YACD,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC;gBAClF,QAAQ,EAAE,aAAa;gBACvB,SAAS;aACZ,CAAC,CAAC;YACH,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,OAAO;aACV;YAED,MAAM,8BAAY,CAAC,qBAAqB,CACpC,IAAI,CAAC,WAAW,EAChB,+BAA+B,EAC/B;gBACI,QAAQ,EAAE,mBAAmB;aAChC,EACD,EAAE,SAAS,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,EAAE,CAC1C,CAAC;QACN,CAAC;KAAA;CACJ,CAAA;qCAhCY,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAMI,WAAA,IAAA,iBAAM,EAAC,mCAAgB,CAAC,qBAAqB,CAAC,CAAA;qCAAgC,6CAAqB;GALvG,0BAA0B,CAgCtC"}
|
package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.d.ts
CHANGED
|
@@ -10,6 +10,6 @@ export declare class SaveBusRunsToDBTask extends AbstractTask<ICommonRunsInput>
|
|
|
10
10
|
private readonly runsRepository;
|
|
11
11
|
private readonly messageProcessor;
|
|
12
12
|
private readonly messageFilter;
|
|
13
|
-
constructor(
|
|
13
|
+
constructor();
|
|
14
14
|
protected execute(data: ICommonRunsInput, msgProperties?: MessageProperties): Promise<void>;
|
|
15
15
|
}
|