@golemio/pid 2.11.10-dev.1186651546 → 2.11.10-dev.1190618538
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/helpers/RouteTypeEnums.d.ts +1 -0
- package/dist/helpers/RouteTypeEnums.js +1 -0
- package/dist/helpers/RouteTypeEnums.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.d.ts +1 -4
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.js +5 -21
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.d.ts +3 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.js +89 -32
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.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 +19 -25
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.js.map +1 -1
- package/package.json +1 -1
|
@@ -16,6 +16,7 @@ var GTFSRouteTypeEnum;
|
|
|
16
16
|
})(GTFSRouteTypeEnum || (exports.GTFSRouteTypeEnum = GTFSRouteTypeEnum = {}));
|
|
17
17
|
var MPVRouteTypesEnum;
|
|
18
18
|
(function (MPVRouteTypesEnum) {
|
|
19
|
+
MPVRouteTypesEnum[MPVRouteTypesEnum["UNKNOWN"] = 0] = "UNKNOWN";
|
|
19
20
|
MPVRouteTypesEnum[MPVRouteTypesEnum["METRO"] = 1] = "METRO";
|
|
20
21
|
MPVRouteTypesEnum[MPVRouteTypesEnum["TRAM"] = 2] = "TRAM";
|
|
21
22
|
MPVRouteTypesEnum[MPVRouteTypesEnum["BUS_CITY"] = 3] = "BUS_CITY";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouteTypeEnums.js","sourceRoot":"","sources":["../../src/helpers/RouteTypeEnums.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAWX;AAXD,WAAY,iBAAiB;IACzB,yDAAQ,CAAA;IACR,2DAAS,CAAA;IACT,2DAAS,CAAA;IACT,uDAAO,CAAA;IACP,2DAAS,CAAA;IACT,mEAAa,CAAA;IACb,sEAAe,CAAA;IACf,iBAAiB;IACjB,4EAA4E;IAC5E,sFAAwB,CAAA;AAC5B,CAAC,EAXW,iBAAiB,iCAAjB,iBAAiB,QAW5B;AAED,IAAY,
|
|
1
|
+
{"version":3,"file":"RouteTypeEnums.js","sourceRoot":"","sources":["../../src/helpers/RouteTypeEnums.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAWX;AAXD,WAAY,iBAAiB;IACzB,yDAAQ,CAAA;IACR,2DAAS,CAAA;IACT,2DAAS,CAAA;IACT,uDAAO,CAAA;IACP,2DAAS,CAAA;IACT,mEAAa,CAAA;IACb,sEAAe,CAAA;IACf,iBAAiB;IACjB,4EAA4E;IAC5E,sFAAwB,CAAA;AAC5B,CAAC,EAXW,iBAAiB,iCAAjB,iBAAiB,QAW5B;AAED,IAAY,iBAoBX;AApBD,WAAY,iBAAiB;IACzB,+DAAW,CAAA;IACX,2DAAS,CAAA;IACT,yDAAQ,CAAA;IACR,iEAAY,CAAA;IACZ,yEAAgB,CAAA;IAChB,mEAAa,CAAA;IACb,qEAAc,CAAA;IACd,6EAAkB,CAAA;IAClB,mEAAa,CAAA;IACb,6DAAU,CAAA;IACV,sEAAe,CAAA;IACf,wEAAgB,CAAA;IAChB,4DAAU,CAAA;IACV,4DAAU,CAAA;IACV,kFAAqB,CAAA;IACrB,gFAAoB,CAAA;IACpB,sFAAuB,CAAA;IACvB,4DAAU,CAAA;IACV,sEAAe,CAAA;AACnB,CAAC,EApBW,iBAAiB,iCAAjB,iBAAiB,QAoB5B;AAED,SAAgB,gBAAgB,CAAC,KAAa;IAC1C,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC5B,IAAI,MAAM,KAAK,KAAK,EAAE;QAClB,OAAO,iBAAiB,CAAC,IAAI,CAAC;KACjC;SAAM,IAAI,OAAO,KAAK,KAAK,EAAE;QAC1B,OAAO,iBAAiB,CAAC,KAAK,CAAC;KAClC;SAAM,IAAI,OAAO,KAAK,KAAK,EAAE;QAC1B,OAAO,iBAAiB,CAAC,KAAK,CAAC;KAClC;SAAM,IAAI,KAAK,KAAK,KAAK,EAAE;QACxB,OAAO,iBAAiB,CAAC,GAAG,CAAC;KAChC;SAAM,IAAI,OAAO,KAAK,KAAK,EAAE;QAC1B,OAAO,iBAAiB,CAAC,KAAK,CAAC;KAClC;SAAM,IAAI,WAAW,KAAK,KAAK,EAAE;QAC9B,OAAO,iBAAiB,CAAC,SAAS,CAAC;KACtC;SAAM,IAAI,YAAY,KAAK,KAAK,EAAE;QAC/B,OAAO,iBAAiB,CAAC,UAAU,CAAC;KACvC;IACD,OAAO,iBAAiB,CAAC,iBAAiB,CAAC;AAC/C,CAAC;AAlBD,4CAkBC;AAED,SAAgB,0BAA0B;IACtC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AACjF,CAAC;AAFD,gEAEC"}
|
|
@@ -1,14 +1,11 @@
|
|
|
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";
|
|
5
4
|
export declare class RegionalBusMessageFilter implements IRegionalBusMessageFilter {
|
|
6
|
-
private config;
|
|
7
5
|
private logger;
|
|
8
|
-
constructor(
|
|
6
|
+
constructor(logger: ILogger);
|
|
9
7
|
/**
|
|
10
8
|
* Get messages that are valid for processing
|
|
11
9
|
*/
|
|
12
10
|
getFilteredMessages(messages: IRegionalBusRunsMessagesModel[]): IRegionalBusRunsMessagesModel[];
|
|
13
|
-
private get regNumberWhitelist();
|
|
14
11
|
}
|
|
@@ -16,8 +16,7 @@ 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
18
|
let RegionalBusMessageFilter = exports.RegionalBusMessageFilter = class RegionalBusMessageFilter {
|
|
19
|
-
constructor(
|
|
20
|
-
this.config = config;
|
|
19
|
+
constructor(logger) {
|
|
21
20
|
this.logger = logger;
|
|
22
21
|
}
|
|
23
22
|
/**
|
|
@@ -26,13 +25,8 @@ let RegionalBusMessageFilter = exports.RegionalBusMessageFilter = class Regional
|
|
|
26
25
|
getFilteredMessages(messages) {
|
|
27
26
|
let filteredMessages = [];
|
|
28
27
|
for (const message of messages) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
this.logger.verbose(
|
|
32
|
-
// eslint-disable-next-line max-len
|
|
33
|
-
`getFilteredMessages: message with registration_number=${message.registration_number} is not in whitelist, skipping`);
|
|
34
|
-
continue;
|
|
35
|
-
}
|
|
28
|
+
const isValidMessage = message.cis_line_id && message.cis_trip_number && message.registration_number && message.events !== "";
|
|
29
|
+
if (isValidMessage) {
|
|
36
30
|
filteredMessages.push(message);
|
|
37
31
|
}
|
|
38
32
|
}
|
|
@@ -41,20 +35,10 @@ let RegionalBusMessageFilter = exports.RegionalBusMessageFilter = class Regional
|
|
|
41
35
|
}
|
|
42
36
|
return filteredMessages;
|
|
43
37
|
}
|
|
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
38
|
};
|
|
54
39
|
exports.RegionalBusMessageFilter = RegionalBusMessageFilter = __decorate([
|
|
55
40
|
(0, tsyringe_1.injectable)(),
|
|
56
|
-
__param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.
|
|
57
|
-
|
|
58
|
-
__metadata("design:paramtypes", [Object, Object])
|
|
41
|
+
__param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
|
|
42
|
+
__metadata("design:paramtypes", [Object])
|
|
59
43
|
], RegionalBusMessageFilter);
|
|
60
44
|
//# 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;AAIjE,IAAM,wBAAwB,sCAA9B,MAAM,wBAAwB;IACjC,YAA8C,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAEjE;;OAEG;IACI,mBAAmB,CAAC,QAAyC;QAChE,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;YAE3G,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;mCAvBY,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GAD5B,wBAAwB,CAuBpC"}
|
|
@@ -8,8 +8,11 @@ export declare class SaveDataToDBTask extends AbstractTask<IMpvMessageInput> {
|
|
|
8
8
|
private readonly tripsRepository;
|
|
9
9
|
private readonly cisStopRepository;
|
|
10
10
|
private readonly messageTransformation;
|
|
11
|
+
private readonly logger;
|
|
11
12
|
constructor(queuePrefix: string);
|
|
12
13
|
protected execute(data: IMpvMessageInput): Promise<void>;
|
|
14
|
+
private saveStops;
|
|
13
15
|
private sendDataToUpdateGtfsTripId;
|
|
14
16
|
private sendDataToUpdateDelay;
|
|
17
|
+
private getTripDataAndSendToUpdateDelay;
|
|
15
18
|
}
|
|
@@ -13,8 +13,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.SaveDataToDBTask = void 0;
|
|
16
|
+
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
17
|
+
const ioc_1 = require("@golemio/core/dist/integration-engine/ioc");
|
|
16
18
|
const queueprocessors_1 = require("@golemio/core/dist/integration-engine/queueprocessors");
|
|
17
19
|
const workers_1 = require("@golemio/core/dist/integration-engine/workers");
|
|
20
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
18
21
|
const CisStopRepository_1 = require("../data-access/CisStopRepository");
|
|
19
22
|
const TripsRepository_1 = require("../data-access/TripsRepository");
|
|
20
23
|
const TripsMapper_1 = __importDefault(require("../data-access/helpers/TripsMapper"));
|
|
@@ -29,6 +32,7 @@ class SaveDataToDBTask extends workers_1.AbstractTask {
|
|
|
29
32
|
this.tripsRepository = new TripsRepository_1.TripsRepository();
|
|
30
33
|
this.cisStopRepository = new CisStopRepository_1.CisStopRepository();
|
|
31
34
|
this.messageTransformation = new MpvMessageTransformation_1.MpvMessageTransformation();
|
|
35
|
+
this.logger = ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.Logger);
|
|
32
36
|
}
|
|
33
37
|
execute(data) {
|
|
34
38
|
var _a;
|
|
@@ -42,58 +46,111 @@ class SaveDataToDBTask extends workers_1.AbstractTask {
|
|
|
42
46
|
.filter((key) => key !== "start_timestamp")
|
|
43
47
|
.concat("updated_at"), true);
|
|
44
48
|
const { inserted, updated } = TripsMapper_1.default.mapTripEntitiesToUpdateDto(tripEntities, taskStartTimestamp);
|
|
45
|
-
|
|
46
|
-
|
|
49
|
+
// At this point we want to send ACK to rabbit and let the rest of the processing to be done in the background
|
|
50
|
+
this.sendDataToUpdateGtfsTripId(inserted, positions);
|
|
51
|
+
this.sendDataToUpdateDelay(updated, positions);
|
|
47
52
|
// Save cis stops to later propagate platform codes to departure boards
|
|
48
|
-
|
|
53
|
+
this.saveStops(stops);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
saveStops(stops) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
try {
|
|
59
|
+
yield this.cisStopRepository.bulkSave(stops);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
if (error instanceof golemio_errors_1.AbstractGolemioError) {
|
|
63
|
+
this.logger.error(error);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
this.logger.error(new golemio_errors_1.GeneralError("Error while saving stops", SaveDataToDBTask.name, error, undefined, "pid", this.queueName));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
49
69
|
});
|
|
50
70
|
}
|
|
51
71
|
sendDataToUpdateGtfsTripId(insertedTrips, positions) {
|
|
52
72
|
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
73
|
+
try {
|
|
74
|
+
// send message for update GTFSTripIds
|
|
75
|
+
for (let i = 0, chunkSize = 50; i < insertedTrips.length; i += chunkSize) {
|
|
76
|
+
const insertedBatch = insertedTrips.slice(i, i + chunkSize);
|
|
77
|
+
const insertedIds = insertedBatch.map((ins) => {
|
|
78
|
+
return ins.id;
|
|
79
|
+
});
|
|
80
|
+
yield queueprocessors_1.QueueManager.sendMessageToExchange(this.queuePrefix, "updateGTFSTripId", {
|
|
81
|
+
trips: insertedBatch,
|
|
82
|
+
positions: positions.filter((position) => insertedIds.includes(position.trips_id)),
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
if (error instanceof golemio_errors_1.AbstractGolemioError) {
|
|
88
|
+
this.logger.error(error);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
this.logger.error(new golemio_errors_1.GeneralError("Error while sending data to update GTFS trip id", SaveDataToDBTask.name, error, undefined, "pid", this.queueName));
|
|
92
|
+
}
|
|
63
93
|
}
|
|
64
94
|
});
|
|
65
95
|
}
|
|
66
96
|
sendDataToUpdateDelay(updatedTrips, positions) {
|
|
67
97
|
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
98
|
+
try {
|
|
99
|
+
// aggregate runs by origin_route_name & run_number to keep related messages in same bulk
|
|
100
|
+
const runTripMap = updatedTrips.length ? { unknown: [] } : {};
|
|
101
|
+
for (const trip of updatedTrips) {
|
|
102
|
+
if (!trip.origin_route_name || !trip.run_number) {
|
|
103
|
+
runTripMap.unknown.push(trip.id);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
const key = `${trip.origin_route_name}_${trip.run_number}`;
|
|
107
|
+
runTripMap[key] ? runTripMap[key].push(trip.id) : (runTripMap[key] = [trip.id]);
|
|
108
|
+
}
|
|
73
109
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
110
|
+
const chunks = [];
|
|
111
|
+
let idx = 0;
|
|
112
|
+
for (const key in runTripMap) {
|
|
113
|
+
if (!chunks[idx]) {
|
|
114
|
+
chunks[idx] = [];
|
|
115
|
+
}
|
|
116
|
+
chunks[idx] = chunks[idx].concat(runTripMap[key]);
|
|
117
|
+
if (chunks[idx].length > 200) {
|
|
118
|
+
idx++;
|
|
119
|
+
}
|
|
77
120
|
}
|
|
121
|
+
const promises = [];
|
|
122
|
+
for (const key in chunks) {
|
|
123
|
+
promises.push(this.getTripDataAndSendToUpdateDelay(chunks[key], positions));
|
|
124
|
+
}
|
|
125
|
+
yield Promise.all(promises);
|
|
78
126
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (!chunks[idx]) {
|
|
83
|
-
chunks[idx] = [];
|
|
127
|
+
catch (error) {
|
|
128
|
+
if (error instanceof golemio_errors_1.AbstractGolemioError) {
|
|
129
|
+
this.logger.error(error);
|
|
84
130
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
idx++;
|
|
131
|
+
else {
|
|
132
|
+
this.logger.error(new golemio_errors_1.GeneralError("Error while sending data to update delay", SaveDataToDBTask.name, error, undefined, "pid", this.queueName));
|
|
88
133
|
}
|
|
89
134
|
}
|
|
90
|
-
|
|
91
|
-
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
getTripDataAndSendToUpdateDelay(chunk, positions) {
|
|
138
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
139
|
+
try {
|
|
140
|
+
const updatedTrips = yield this.tripsRepository.findAllAssocTripIds(chunk);
|
|
92
141
|
yield queueprocessors_1.QueueManager.sendMessageToExchange(this.queuePrefix, "updateDelay", {
|
|
93
142
|
updatedTrips,
|
|
94
|
-
positions: positions.filter((position) =>
|
|
143
|
+
positions: positions.filter((position) => chunk.includes(position.trips_id)),
|
|
95
144
|
});
|
|
96
145
|
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
if (error instanceof golemio_errors_1.AbstractGolemioError) {
|
|
148
|
+
this.logger.error(error);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
this.logger.error(new golemio_errors_1.GeneralError("Error while sending data to update delay", SaveDataToDBTask.name, error, undefined, "pid", this.queueName));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
97
154
|
});
|
|
98
155
|
}
|
|
99
156
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveDataToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"SaveDataToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,10 @@ import { Moment } from "@golemio/core/dist/shared/moment-timezone";
|
|
|
3
3
|
import { IMpvPositionContent } from "../interfaces/MpvMessageInterfaces";
|
|
4
4
|
import { ITransformationElement, ITransformationResult } from "../interfaces/TransformationInterfaces";
|
|
5
5
|
export declare class MpvMessageTransformation extends BaseTransformation implements ITransformation {
|
|
6
|
+
private static ORIGIN_TIME_FORMAT;
|
|
6
7
|
name: string;
|
|
7
8
|
private config;
|
|
8
|
-
private
|
|
9
|
+
private skipAgencyNames;
|
|
9
10
|
constructor();
|
|
10
11
|
/**
|
|
11
12
|
* Overrides BaseTransformation::transform
|
|
@@ -31,6 +32,7 @@ export declare class MpvMessageTransformation extends BaseTransformation impleme
|
|
|
31
32
|
* @returns {number}
|
|
32
33
|
*/
|
|
33
34
|
private checkMidnight;
|
|
35
|
+
private isBlacklistedAgency;
|
|
34
36
|
/**
|
|
35
37
|
* Fix source negative bearing value due to overflow by adding 256
|
|
36
38
|
*
|
|
@@ -45,9 +47,4 @@ export declare class MpvMessageTransformation extends BaseTransformation impleme
|
|
|
45
47
|
* @returns {stringList}
|
|
46
48
|
*/
|
|
47
49
|
private formatASWStopId;
|
|
48
|
-
/**
|
|
49
|
-
* Returns list of vehicle reg numbers that should be excluded from MPVNet processing
|
|
50
|
-
* (already processed from another source)
|
|
51
|
-
*/
|
|
52
|
-
private get regionalBusRegNumberBlacklist();
|
|
53
50
|
}
|
|
@@ -22,6 +22,7 @@ const const_1 = require("../../../../../const");
|
|
|
22
22
|
const DPPUtils_1 = __importDefault(require("../helpers/DPPUtils"));
|
|
23
23
|
const ProviderSourceTypeEnum_1 = require("../helpers/ProviderSourceTypeEnum");
|
|
24
24
|
const MpvStopParser_1 = require("../helpers/mpv-net/MpvStopParser");
|
|
25
|
+
const RouteTypeEnums_1 = require("../../../../../helpers/RouteTypeEnums");
|
|
25
26
|
var PositionTrackingEnum;
|
|
26
27
|
(function (PositionTrackingEnum) {
|
|
27
28
|
PositionTrackingEnum["NOT_TRACKING"] = "0";
|
|
@@ -30,6 +31,7 @@ var PositionTrackingEnum;
|
|
|
30
31
|
class MpvMessageTransformation extends transformations_1.BaseTransformation {
|
|
31
32
|
constructor() {
|
|
32
33
|
super();
|
|
34
|
+
this.skipAgencyNames = [DPPUtils_1.default.DPP_AGENCY_NAME];
|
|
33
35
|
/**
|
|
34
36
|
* Overrides BaseTransformation::transform
|
|
35
37
|
*/
|
|
@@ -48,7 +50,9 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
|
|
|
48
50
|
if (elemRes) {
|
|
49
51
|
res.positions.push(elemRes.position);
|
|
50
52
|
trips.set(elemRes.trip.id, elemRes.trip);
|
|
51
|
-
|
|
53
|
+
for (const [key, value] of elemRes.stops) {
|
|
54
|
+
stops.set(key, value);
|
|
55
|
+
}
|
|
52
56
|
}
|
|
53
57
|
}
|
|
54
58
|
res.trips = Array.from(trips.values());
|
|
@@ -58,14 +62,9 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
|
|
|
58
62
|
this.transformElement = (element) => __awaiter(this, void 0, void 0, function* () {
|
|
59
63
|
var _a, _b;
|
|
60
64
|
const attributes = element.$;
|
|
61
|
-
// DPP and regional bus trips to be excluded in HTTP ingress
|
|
62
|
-
const isDPPTrip = attributes.dopr === DPPUtils_1.default.DPP_AGENCY_NAME;
|
|
63
|
-
const isRegionalBusTrip = !!attributes.vuzevc &&
|
|
64
|
-
this.regionalBusRegNumberBlacklist &&
|
|
65
|
-
this.regionalBusRegNumberBlacklist.includes(attributes.vuzevc);
|
|
66
65
|
// Trips with null cpoz (origin time) and falsy or "false" zrus (cancellation) attributes are excluded
|
|
67
66
|
const hasInvalidAttributes = !attributes.cpoz && (!attributes.zrus || attributes.zrus === "false");
|
|
68
|
-
if (
|
|
67
|
+
if (this.isBlacklistedAgency(attributes.dopr) || hasInvalidAttributes) {
|
|
69
68
|
return null;
|
|
70
69
|
}
|
|
71
70
|
attributes.lin = attributes.lin || "none";
|
|
@@ -160,11 +159,13 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
|
|
|
160
159
|
(stop.$.zpoz_typ_prij && parseInt(stop.$.zpoz_typ_prij, 10) === 3))) {
|
|
161
160
|
res.position.cis_last_stop_sequence = cisStopSequence;
|
|
162
161
|
}
|
|
163
|
-
res.
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
162
|
+
if (res.trip.vehicle_type_id === RouteTypeEnums_1.MPVRouteTypesEnum.UNKNOWN || res.trip.vehicle_type_id === RouteTypeEnums_1.MPVRouteTypesEnum.TRAIN) {
|
|
163
|
+
res.stops.set(`${primaryKey}_${stop.$.zast}`, {
|
|
164
|
+
rt_trip_id: primaryKey,
|
|
165
|
+
cis_stop_group_id: parseInt(stop.$.zast, 10),
|
|
166
|
+
cis_stop_platform_code: MpvStopParser_1.MpvStopParser.parsePlatformCode(stop),
|
|
167
|
+
});
|
|
168
|
+
}
|
|
168
169
|
}
|
|
169
170
|
return res;
|
|
170
171
|
});
|
|
@@ -228,6 +229,12 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
|
|
|
228
229
|
};
|
|
229
230
|
this.name = vehicle_positions_1.VehiclePositions.name;
|
|
230
231
|
this.config = Di_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.SimpleConfig);
|
|
232
|
+
this.skipAgencyNames = this.skipAgencyNames.concat(this.config
|
|
233
|
+
.getValue("module.pid.vehicle-positions.mpvIntegration.skipAgencyNames", "ARRIVA CITY,ARRIVA CITY (Neratovice)")
|
|
234
|
+
.split(","));
|
|
235
|
+
}
|
|
236
|
+
isBlacklistedAgency(agency) {
|
|
237
|
+
return agency && this.skipAgencyNames.includes(agency);
|
|
231
238
|
}
|
|
232
239
|
/**
|
|
233
240
|
* Fix source negative bearing value due to overflow by adding 256
|
|
@@ -250,19 +257,6 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
|
|
|
250
257
|
const aswParsedStopPostId = parseInt(stopId, 10) - aswParsedStopNodeId * fixedRightPadFactor;
|
|
251
258
|
return aswParsedStopNodeId + "/" + aswParsedStopPostId;
|
|
252
259
|
}
|
|
253
|
-
/**
|
|
254
|
-
* Returns list of vehicle reg numbers that should be excluded from MPVNet processing
|
|
255
|
-
* (already processed from another source)
|
|
256
|
-
*/
|
|
257
|
-
get regionalBusRegNumberBlacklist() {
|
|
258
|
-
const valuePath = "old.datasources.pid.vehicle-positions.regNumberWhitelist.regionalBus";
|
|
259
|
-
const blacklistDict = this.config.getValue(valuePath, {});
|
|
260
|
-
const blacklist = Object.values(blacklistDict);
|
|
261
|
-
if (blacklist.length > 0 && blacklist[0] !== "*") {
|
|
262
|
-
return blacklist;
|
|
263
|
-
}
|
|
264
|
-
return null;
|
|
265
|
-
}
|
|
266
260
|
}
|
|
267
261
|
exports.MpvMessageTransformation = MpvMessageTransformation;
|
|
268
262
|
MpvMessageTransformation.ORIGIN_TIME_FORMAT = "HH:mm:ss";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MpvMessageTransformation.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2FAA0D;AAG1D,wEAAqE;AACrE,qEAA0F;AAC1F,2FAA4G;AAC5G,gGAA2E;AAC3E,gDAAgE;AAChE,mEAA2C;AAC3C,8EAA2E;AAC3E,oEAAiE;
|
|
1
|
+
{"version":3,"file":"MpvMessageTransformation.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.ts"],"names":[],"mappings":"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"}
|