@golemio/pid 5.7.3 → 5.7.4-dev.2387470014
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/const.d.ts +0 -1
- package/dist/const.js +1 -2
- package/dist/const.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.d.ts +14 -0
- package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.js +47 -0
- package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.d.ts +3 -2
- package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.js +4 -2
- package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.d.ts +9 -0
- package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.js +47 -0
- package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/ioc/Di.js +4 -0
- package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +2 -0
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +2 -0
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.d.ts +6 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.js +39 -10
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/ioc/Di.js +2 -0
- package/dist/integration-engine/vehicle-positions/ioc/Di.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.d.ts +1 -0
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js +1 -0
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.d.ts +11 -5
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js +36 -9
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.d.ts +4 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js +26 -9
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.d.ts +7 -3
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js +26 -8
- 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/tasks/SaveBusRunsToDBTask.js +3 -2
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js +4 -3
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.d.ts +1 -2
- package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js +3 -10
- package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.d.ts +2 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.js +5 -3
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/IUpdateRunsGtfsTripInput.d.ts +11 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.d.ts +3 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.js +11 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.js +4 -3
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.d.ts +10 -3
- package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.js +30 -7
- package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/data-access/TripRepository.d.ts +7 -3
- package/dist/output-gateway/vehicle-positions/data-access/TripRepository.js +30 -7
- package/dist/output-gateway/vehicle-positions/data-access/TripRepository.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/data-access/VehicleDescriptorRepository.d.ts +10 -3
- package/dist/output-gateway/vehicle-positions/data-access/VehicleDescriptorRepository.js +30 -7
- package/dist/output-gateway/vehicle-positions/data-access/VehicleDescriptorRepository.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.d.ts +10 -3
- package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.js +30 -7
- package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.d.ts +10 -0
- package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.js +45 -0
- package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.js.map +1 -0
- package/dist/output-gateway/vehicle-positions/data-access/index.js +9 -18
- package/dist/output-gateway/vehicle-positions/data-access/index.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/data-access/interfaces/ITripWithPositionRepository.d.ts +3 -2
- package/dist/output-gateway/vehicle-positions/data-access/interfaces/IVPRepositoryInstances.d.ts +6 -6
- package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.d.ts +7 -3
- package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.js +30 -7
- package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.d.ts +17 -7
- package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.js +112 -42
- package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/ioc/Di.d.ts +3 -0
- package/dist/output-gateway/vehicle-positions/ioc/Di.js +23 -0
- package/dist/output-gateway/vehicle-positions/ioc/Di.js.map +1 -0
- package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.d.ts +9 -0
- package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.js +15 -0
- package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.js.map +1 -0
- package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.d.ts +3 -0
- package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.js +40 -0
- package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.js.map +1 -0
- package/dist/schema-definitions/datasources/static-data/index.d.ts +1 -0
- package/dist/schema-definitions/datasources/static-data/index.js +1 -0
- package/dist/schema-definitions/datasources/static-data/index.js.map +1 -1
- package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.d.ts +35 -0
- package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.js +18 -0
- package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.js.map +1 -0
- package/dist/schema-definitions/datasources/static-data/interfaces/index.d.ts +1 -0
- package/dist/schema-definitions/datasources/static-data/interfaces/index.js +1 -0
- package/dist/schema-definitions/datasources/static-data/interfaces/index.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/redis/const.d.ts +2 -0
- package/dist/schema-definitions/ropid-gtfs/redis/const.js +3 -1
- package/dist/schema-definitions/ropid-gtfs/redis/const.js.map +1 -1
- package/dist/schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto.d.ts +8 -0
- package/docs/asyncapi.yaml +13 -2
- package/docs/cache/types/redis.md +30 -2
- package/docs/examples/not_public_vehicles.json +9 -0
- package/docs/implementation_documentation.md +101 -4
- package/docs/jis/index.md +17 -0
- package/docs/processing/input_realtime_data/http_mpvnet.md +21 -0
- package/docs/processing/state_position_tracking/http_mpvnet.md +1 -0
- package/docs/processing/state_position_tracking/tcp_dpp_common.md +2 -1
- package/docs/processing/transferboards_filtering.md +312 -0
- package/package.json +1 -1
|
@@ -13,6 +13,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.BusMessageFilter = void 0;
|
|
16
|
+
const NotPublicVehiclesRedisRepository_1 = require("../../../../ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository");
|
|
16
17
|
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
17
18
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
18
19
|
const VPContainerToken_1 = require("../../../ioc/VPContainerToken");
|
|
@@ -21,19 +22,28 @@ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
|
21
22
|
const TROLLEYBUS_ROUTE_ID_MIN = 50;
|
|
22
23
|
const TROLLEYBUS_ROUTE_ID_MAX = 69;
|
|
23
24
|
let BusMessageFilter = class BusMessageFilter {
|
|
24
|
-
constructor(logger, timestampValidator, config) {
|
|
25
|
+
constructor(logger, timestampValidator, config, notPublicVehiclesRepository) {
|
|
25
26
|
this.logger = logger;
|
|
26
27
|
this.timestampValidator = timestampValidator;
|
|
27
28
|
this.config = config;
|
|
28
|
-
this.
|
|
29
|
+
this.notPublicVehiclesRepository = notPublicVehiclesRepository;
|
|
30
|
+
this.dppTestingBuses = new Set(this.config.getValue("module.pid.vehicle-positions.dppTestingBuses.*", []));
|
|
29
31
|
}
|
|
30
32
|
/**
|
|
31
33
|
* Yield messages that are valid for processing (filter out internal bus lines and testing buses)
|
|
32
|
-
* - route id is a string of length 3 or more
|
|
33
|
-
* - route id is a number in range of
|
|
34
|
-
*
|
|
34
|
+
* - route id is a string of length 3 or more (bus)
|
|
35
|
+
* - route id is a number in range of trolleybus lines [50, 69]
|
|
36
|
+
* - filters out scheduled vehicles missing tjr (actual_stop_timestamp_scheduled)
|
|
37
|
+
* - OR registration number is in not-public vehicles whitelist (e.g., metro replacement buses)
|
|
38
|
+
* - filters out testing buses
|
|
39
|
+
*
|
|
40
|
+
* Sets isNotPublic flag on messages to avoid duplicate whitelist checks in processor
|
|
35
41
|
*/
|
|
36
|
-
*yieldFilteredMessages(messages, timestamp) {
|
|
42
|
+
async *yieldFilteredMessages(messages, timestamp) {
|
|
43
|
+
// Load config once for the entire batch to avoid multiple Redis calls
|
|
44
|
+
const { road: { registrationNumbers }, routeIds, } = await this.notPublicVehiclesRepository.getConfig();
|
|
45
|
+
const whitelistedRegistrationNumbers = new Set(registrationNumbers);
|
|
46
|
+
const whitelistedRouteNames = new Set(routeIds);
|
|
37
47
|
for (const message of messages) {
|
|
38
48
|
const { run } = message;
|
|
39
49
|
if (!this.timestampValidator.isTimestampValid(timestamp, message.run_message.actual_stop_timestamp_real.toString())) {
|
|
@@ -42,25 +52,41 @@ let BusMessageFilter = class BusMessageFilter {
|
|
|
42
52
|
` is not valid for line ${message.run.line_short_name}, run ${message.run.run_number}`, this.constructor.name, undefined, undefined, "pid"));
|
|
43
53
|
continue;
|
|
44
54
|
}
|
|
55
|
+
const isNotPublicByRegistration = whitelistedRegistrationNumbers.has(run.registration_number);
|
|
56
|
+
const isNotPublicByRouteName = whitelistedRouteNames.has(run.line_short_name);
|
|
57
|
+
const isNotPublicVehicle = isNotPublicByRegistration || isNotPublicByRouteName;
|
|
58
|
+
if (isNotPublicVehicle) {
|
|
59
|
+
message.isNotPublic = true;
|
|
60
|
+
yield message;
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
// Regular scheduled buses require tjr (scheduled timestamp)
|
|
64
|
+
if (!message.run_message.actual_stop_timestamp_scheduled) {
|
|
65
|
+
this.logger.info(`Skipping bus without scheduled timestamp (tjr) - line ${run.line_short_name}, run ${run.run_number}`);
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
45
68
|
if (run.route_id.length > 2) {
|
|
46
69
|
if (this.isTestingBus(message.run.registration_number)) {
|
|
47
|
-
this.logger.info(`Testing bus ${message.run.registration_number} was
|
|
70
|
+
this.logger.info(`Testing bus ${message.run.registration_number} was filtered out`);
|
|
48
71
|
continue;
|
|
49
72
|
}
|
|
73
|
+
message.isNotPublic = false;
|
|
50
74
|
yield message;
|
|
51
75
|
continue;
|
|
52
76
|
}
|
|
77
|
+
// Trolleybus (route_id in range [50-69])
|
|
53
78
|
const routeId = Number.parseInt(run.route_id);
|
|
54
79
|
if (Number.isNaN(routeId) || routeId < TROLLEYBUS_ROUTE_ID_MIN || routeId > TROLLEYBUS_ROUTE_ID_MAX) {
|
|
55
80
|
this.logger.info(`${this.constructor.name}: route id ${routeId} is invalid or out of range`);
|
|
56
81
|
this.logger.debug(message);
|
|
57
82
|
continue;
|
|
58
83
|
}
|
|
84
|
+
message.isNotPublic = false;
|
|
59
85
|
yield message;
|
|
60
86
|
}
|
|
61
87
|
}
|
|
62
88
|
isTestingBus(reqNumber) {
|
|
63
|
-
return this.dppTestingBuses.
|
|
89
|
+
return this.dppTestingBuses.has(reqNumber);
|
|
64
90
|
}
|
|
65
91
|
};
|
|
66
92
|
exports.BusMessageFilter = BusMessageFilter;
|
|
@@ -69,6 +95,7 @@ exports.BusMessageFilter = BusMessageFilter = __decorate([
|
|
|
69
95
|
__param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
|
|
70
96
|
__param(1, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.TimestampValidator)),
|
|
71
97
|
__param(2, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
|
|
72
|
-
|
|
98
|
+
__param(3, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.NotPublicVehiclesRedisRepository)),
|
|
99
|
+
__metadata("design:paramtypes", [Object, TimestampValidator_1.TimestampValidator, Object, NotPublicVehiclesRedisRepository_1.NotPublicVehiclesRedisRepository])
|
|
73
100
|
], BusMessageFilter);
|
|
74
101
|
//# 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;AAExE,oEAA8E;AAC9E,6DAA0D;AAC1D,6EAAwE;AAGxE,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAG5B,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAEzB,YACsC,MAAe,EACI,kBAAsC,EACnD,MAAqB;
|
|
1
|
+
{"version":3,"file":"BusMessageFilter.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.ts"],"names":[],"mappings":"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"}
|
package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.d.ts
CHANGED
|
@@ -5,7 +5,10 @@ export declare class CommonMessageProcessor {
|
|
|
5
5
|
private logger;
|
|
6
6
|
constructor(runsRepository: CommonRunsRepository);
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Process a transformed run message
|
|
9
|
+
*
|
|
10
|
+
* @param element - The run with message data (already filtered, with isNotPublic flag set)
|
|
11
|
+
* @param firstMessageCreatedAt - Timestamp of the first message in the batch
|
|
9
12
|
*/
|
|
10
13
|
processTransformedRun: (element: ICommonRunWithMessageDto, firstMessageCreatedAt?: number) => Promise<void>;
|
|
11
14
|
private logElementIssues;
|
package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js
CHANGED
|
@@ -7,33 +7,50 @@ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
|
7
7
|
const config_1 = require("@golemio/core/dist/integration-engine/config");
|
|
8
8
|
const queueprocessors_1 = require("@golemio/core/dist/integration-engine/queueprocessors");
|
|
9
9
|
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
10
|
-
const const_1 = require("../../../../../const");
|
|
11
10
|
const ONE_HOUR_IN_MILLIS = 60 * 60 * 1000;
|
|
12
11
|
const MIN_HOURS_DIFF_TO_LOG = 22;
|
|
13
12
|
class CommonMessageProcessor {
|
|
14
13
|
constructor(runsRepository) {
|
|
15
14
|
this.runsRepository = runsRepository;
|
|
16
15
|
/**
|
|
17
|
-
*
|
|
16
|
+
* Process a transformed run message
|
|
17
|
+
*
|
|
18
|
+
* @param element - The run with message data (already filtered, with isNotPublic flag set)
|
|
19
|
+
* @param firstMessageCreatedAt - Timestamp of the first message in the batch
|
|
18
20
|
*/
|
|
19
21
|
this.processTransformedRun = async (element, firstMessageCreatedAt) => {
|
|
20
22
|
this.logElementIssues(element);
|
|
21
23
|
const record = await this.runsRepository.getRunRecordForUpdate(element.run);
|
|
24
|
+
// Read flag set by filter (avoids duplicate whitelist check)
|
|
25
|
+
const isNotPublic = element.isNotPublic === true ? true : undefined;
|
|
22
26
|
let outputMsg;
|
|
23
27
|
if (record) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
// Data quality check: Ensure scheduled vehicles have timestamps
|
|
29
|
+
// Not-public vehicles (replacement buses/trams) don't need scheduled timestamps
|
|
30
|
+
// Regular scheduled vehicles MUST have a timestamp or be able to get one from history
|
|
31
|
+
if (!element.run_message.actual_stop_timestamp_scheduled) {
|
|
32
|
+
// If NOT a not-public vehicle, try to get timestamp from last message
|
|
33
|
+
// If we can't get it, skip this message (data quality issue)
|
|
34
|
+
if (!isNotPublic) {
|
|
35
|
+
const lastRecordMessage = await this.runsRepository["runsMessagesRepository"].getLastMessage(record.id);
|
|
36
|
+
if (!lastRecordMessage || !lastRecordMessage.actual_stop_timestamp_scheduled) {
|
|
37
|
+
// Cannot process scheduled vehicle without timestamp
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
element.run_message.actual_stop_timestamp_scheduled = lastRecordMessage.actual_stop_timestamp_scheduled;
|
|
41
|
+
}
|
|
42
|
+
// If IS a not-public vehicle, continue without timestamp (this is expected)
|
|
30
43
|
}
|
|
31
44
|
outputMsg = await this.runsRepository.updateAndAssociate(element, record.id);
|
|
32
45
|
}
|
|
33
46
|
else {
|
|
34
47
|
outputMsg = await this.runsRepository.createAndAssociate(element);
|
|
35
48
|
}
|
|
36
|
-
await queueprocessors_1.QueueManager.sendMessageToExchange(`${config_1.config.RABBIT_EXCHANGE_NAME}.${vehicle_positions_1.VehiclePositions.name.toLowerCase()}`, "updateRunsGTFSTripId",
|
|
49
|
+
await queueprocessors_1.QueueManager.sendMessageToExchange(`${config_1.config.RABBIT_EXCHANGE_NAME}.${vehicle_positions_1.VehiclePositions.name.toLowerCase()}`, "updateRunsGTFSTripId", {
|
|
50
|
+
...outputMsg,
|
|
51
|
+
isNotPublic,
|
|
52
|
+
notPublicVehicleRouteType: element.notPublicVehicleRouteType,
|
|
53
|
+
}, { timestamp: firstMessageCreatedAt });
|
|
37
54
|
};
|
|
38
55
|
this.logger = Di_1.PidContainer.resolve(CoreToken_1.CoreToken.Logger);
|
|
39
56
|
}
|
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;
|
|
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;AAGxE,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;;;;;WAKG;QACI,0BAAqB,GAAG,KAAK,EAAE,OAAiC,EAAE,qBAA8B,EAAiB,EAAE;YACtH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAE5E,6DAA6D;YAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAEpE,IAAI,SAAmC,CAAC;YACxC,IAAI,MAAM,EAAE,CAAC;gBACT,gEAAgE;gBAChE,gFAAgF;gBAChF,sFAAsF;gBACtF,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,+BAA+B,EAAE,CAAC;oBACvD,sEAAsE;oBACtE,6DAA6D;oBAC7D,IAAI,CAAC,WAAW,EAAE,CAAC;wBACf,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBACxG,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,+BAA+B,EAAE,CAAC;4BAC3E,qDAAqD;4BACrD,OAAO;wBACX,CAAC;wBACD,OAAO,CAAC,WAAW,CAAC,+BAA+B,GAAG,iBAAiB,CAAC,+BAA+B,CAAC;oBAC5G,CAAC;oBACD,4EAA4E;gBAChF,CAAC;gBAED,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACJ,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,8BAAY,CAAC,qBAAqB,CACpC,GAAG,eAAM,CAAC,oBAAoB,IAAI,oCAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EACvE,sBAAsB,EACtB;gBACI,GAAG,SAAS;gBACZ,WAAW;gBACX,yBAAyB,EAAE,OAAO,CAAC,yBAAyB;aAC/D,EACD,EAAE,SAAS,EAAE,qBAAqB,EAAE,CACvC,CAAC;QACN,CAAC,CAAC;QAlDE,IAAI,CAAC,MAAM,GAAG,iBAAY,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;IAmDO,gBAAgB,CAAC,OAAiC;QACtD,IACI,OAAO,CAAC,WAAW,CAAC,+BAA+B,YAAY,IAAI;YACnE,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;gBACtE,qBAAqB,GAAG,kBAAkB,EAChD,CAAC;YACC,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,6BAAY,CACZ,qCAAqC,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,WAAW,EAAE,GAAG;gBACrG,OAAO,qBAAqB,qBAAqB,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO;gBACnF,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EACjC,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,SAAS,EACT,KAAK,CACR,CACJ,CAAC;QACN,CAAC;IACL,CAAC;CACJ;AA3ED,wDA2EC"}
|
package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.d.ts
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
import { ICommonRunWithMessageDto } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto";
|
|
2
|
+
import { NotPublicVehiclesRedisRepository } from "../../../../ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository";
|
|
2
3
|
import { ILogger } from "@golemio/core/dist/helpers/logger";
|
|
3
4
|
import { ICommonMessageFilter } from "./interfaces/ICommonMessageFilter";
|
|
4
5
|
import { TimestampValidator } from "./TimestampValidator";
|
|
5
6
|
export declare class TramMessageFilter implements ICommonMessageFilter {
|
|
6
7
|
private logger;
|
|
7
8
|
private timestampValidator;
|
|
8
|
-
|
|
9
|
+
private notPublicVehiclesRepository;
|
|
10
|
+
constructor(logger: ILogger, timestampValidator: TimestampValidator, notPublicVehiclesRepository: NotPublicVehiclesRedisRepository);
|
|
9
11
|
/**
|
|
10
12
|
* Yield tram messages that are valid for processing
|
|
11
13
|
* - route id is not considered a servicing route (50-89, note: >89 is a night tram route)
|
|
12
14
|
* - run number is less than 80
|
|
13
|
-
* -
|
|
15
|
+
* - OR registration number is in not-public vehicles whitelist (e.g., mazačka maintenance trams)
|
|
14
16
|
* - timestamp is in acceptable range
|
|
17
|
+
*
|
|
18
|
+
* Sets isNotPublic flag on messages to avoid duplicate whitelist checks in processor
|
|
15
19
|
*/
|
|
16
|
-
yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number):
|
|
20
|
+
yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): AsyncGenerator<ICommonRunWithMessageDto>;
|
|
17
21
|
private isRouteIdValid;
|
|
18
22
|
private isRunNumberValid;
|
|
19
23
|
}
|
|
@@ -13,9 +13,9 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.TramMessageFilter = void 0;
|
|
16
|
+
const NotPublicVehiclesRedisRepository_1 = require("../../../../ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository");
|
|
16
17
|
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
17
18
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
18
|
-
const const_1 = require("../../../../../const");
|
|
19
19
|
const VPContainerToken_1 = require("../../../ioc/VPContainerToken");
|
|
20
20
|
const TimestampValidator_1 = require("./TimestampValidator");
|
|
21
21
|
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
@@ -23,28 +23,44 @@ const TRAM_SERVICING_ROUTE_ID_MIN = 50;
|
|
|
23
23
|
const TRAM_SERVICING_ROUTE_ID_MAX = 89;
|
|
24
24
|
const TRAM_UNUSUAL_RUN_NUMBER_MIN = 80;
|
|
25
25
|
let TramMessageFilter = class TramMessageFilter {
|
|
26
|
-
constructor(logger, timestampValidator) {
|
|
26
|
+
constructor(logger, timestampValidator, notPublicVehiclesRepository) {
|
|
27
27
|
this.logger = logger;
|
|
28
28
|
this.timestampValidator = timestampValidator;
|
|
29
|
+
this.notPublicVehiclesRepository = notPublicVehiclesRepository;
|
|
29
30
|
}
|
|
30
31
|
/**
|
|
31
32
|
* Yield tram messages that are valid for processing
|
|
32
33
|
* - route id is not considered a servicing route (50-89, note: >89 is a night tram route)
|
|
33
34
|
* - run number is less than 80
|
|
34
|
-
* -
|
|
35
|
+
* - OR registration number is in not-public vehicles whitelist (e.g., mazačka maintenance trams)
|
|
35
36
|
* - timestamp is in acceptable range
|
|
37
|
+
*
|
|
38
|
+
* Sets isNotPublic flag on messages to avoid duplicate whitelist checks in processor
|
|
36
39
|
*/
|
|
37
|
-
*yieldFilteredMessages(messages, timestamp) {
|
|
40
|
+
async *yieldFilteredMessages(messages, timestamp) {
|
|
41
|
+
// Load config once for the entire batch to avoid multiple Redis calls
|
|
42
|
+
const { tram: { registrationNumbers }, routeIds, } = await this.notPublicVehiclesRepository.getConfig();
|
|
43
|
+
const whitelistedRegistrationNumbers = new Set(registrationNumbers);
|
|
44
|
+
const whitelistedRouteNames = new Set(routeIds);
|
|
38
45
|
for (const message of messages) {
|
|
39
|
-
const { route_id, run_number, registration_number } = message.run;
|
|
46
|
+
const { route_id, run_number, registration_number, line_short_name } = message.run;
|
|
40
47
|
if (!this.timestampValidator.isTimestampValid(timestamp, message.run_message.actual_stop_timestamp_real.toString())) {
|
|
41
48
|
this.logger.error(new golemio_errors_1.GeneralError("Message timestamp 'takt' of value" +
|
|
42
49
|
` '${message.run_message.actual_stop_timestamp_real.toISOString()}'` +
|
|
43
50
|
` is not valid for line ${message.run.line_short_name}, run ${message.run.run_number}`, this.constructor.name, undefined, undefined, "pid"));
|
|
44
51
|
continue;
|
|
45
52
|
}
|
|
46
|
-
if
|
|
47
|
-
|
|
53
|
+
// Check if this is a not-public vehicle
|
|
54
|
+
// - Whitelisted registration number (e.g., mazačka maintenance tram)
|
|
55
|
+
// - Whitelisted route name (e.g., ad-hoc routes like X1, X2, NAD)
|
|
56
|
+
const isNotPublicByRegistration = whitelistedRegistrationNumbers.has(registration_number);
|
|
57
|
+
const isNotPublicByRouteName = whitelistedRouteNames.has(line_short_name);
|
|
58
|
+
const isNotPublicVehicle = isNotPublicByRegistration || isNotPublicByRouteName;
|
|
59
|
+
// Allow if:
|
|
60
|
+
// - Whitelisted by registration number OR route name (not-public vehicles)
|
|
61
|
+
// - OR valid route_id and run_number (scheduled vehicles)
|
|
62
|
+
if (isNotPublicVehicle || (this.isRouteIdValid(route_id) && this.isRunNumberValid(run_number))) {
|
|
63
|
+
message.isNotPublic = isNotPublicVehicle; // ← Set flag
|
|
48
64
|
yield message;
|
|
49
65
|
}
|
|
50
66
|
else {
|
|
@@ -67,6 +83,8 @@ exports.TramMessageFilter = TramMessageFilter = __decorate([
|
|
|
67
83
|
(0, tsyringe_1.injectable)(),
|
|
68
84
|
__param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
|
|
69
85
|
__param(1, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.TimestampValidator)),
|
|
70
|
-
|
|
86
|
+
__param(2, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.NotPublicVehiclesRedisRepository)),
|
|
87
|
+
__metadata("design:paramtypes", [Object, TimestampValidator_1.TimestampValidator,
|
|
88
|
+
NotPublicVehiclesRedisRepository_1.NotPublicVehiclesRedisRepository])
|
|
71
89
|
], TramMessageFilter);
|
|
72
90
|
//# sourceMappingURL=TramMessageFilter.js.map
|
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;
|
|
1
|
+
{"version":3,"file":"TramMessageFilter.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ICommonRunWithMessageDto } from "../../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto";
|
|
2
2
|
export interface ICommonMessageFilter {
|
|
3
|
-
yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number):
|
|
3
|
+
yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): AsyncGenerator<ICommonRunWithMessageDto>;
|
|
4
4
|
}
|
|
@@ -19,6 +19,7 @@ const Di_1 = require("../../../ioc/Di");
|
|
|
19
19
|
const VPContainerToken_1 = require("../../../ioc/VPContainerToken");
|
|
20
20
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
21
21
|
const constants_1 = require("../constants");
|
|
22
|
+
const RouteTypeEnums_1 = require("../../../../../helpers/RouteTypeEnums");
|
|
22
23
|
let SaveBusRunsToDBTask = class SaveBusRunsToDBTask extends workers_1.AbstractTask {
|
|
23
24
|
constructor() {
|
|
24
25
|
super(constants_1.WORKER_NAME);
|
|
@@ -37,8 +38,8 @@ let SaveBusRunsToDBTask = class SaveBusRunsToDBTask extends workers_1.AbstractTa
|
|
|
37
38
|
}
|
|
38
39
|
const messages = this.messagesTransformation.transform({ data: data.M.V, timestamp });
|
|
39
40
|
const filteredMessages = this.messageFilter.yieldFilteredMessages(messages, timestamp);
|
|
40
|
-
for (const runMessage of filteredMessages) {
|
|
41
|
-
await this.messageProcessor.processTransformedRun(runMessage, timestamp);
|
|
41
|
+
for await (const runMessage of filteredMessages) {
|
|
42
|
+
await this.messageProcessor.processTransformedRun({ ...runMessage, notPublicVehicleRouteType: runMessage.isNotPublic ? RouteTypeEnums_1.GTFSRouteTypeEnum.BUS : undefined }, timestamp);
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
};
|
package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveBusRunsToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2EAA6E;AAC7E,6EAAwE;AAExE,8EAA2E;
|
|
1
|
+
{"version":3,"file":"SaveBusRunsToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2EAA6E;AAC7E,6EAAwE;AAExE,8EAA2E;AAC3E,8EAA2E;AAG3E,iEAAwE;AAExE,wCAA2D;AAC3D,oEAA8E;AAC9E,iEAAgE;AAChE,4CAA2C;AAE3C,0EAA4D;AAErD,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,sBAA8B;IAUnE;QACI,KAAK,CAAC,uBAAW,CAAC,CAAC;QAVP,cAAS,GAAG,iBAAiB,CAAC;QAC9B,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QACtC,WAAM,GAAG,6CAA0B,CAAC;QAShD,IAAI,CAAC,sBAAsB,GAAG,gBAAW,CAAC,OAAO,CAC7C,mCAAgB,CAAC,gCAAgC,CACpD,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,2CAAoB,EAAE,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxE,IAAI,CAAC,aAAa,GAAG,gBAAW,CAAC,OAAO,CAAmB,mCAAgB,CAAC,gBAAgB,CAAC,CAAC;IAClG,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,IAAsB,EAAE,aAAiC;QAC7E,MAAM,SAAS,GAAG,aAAa,EAAE,SAAS,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAAY,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACtF,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEvF,IAAI,KAAK,EAAE,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAC7C,EAAE,GAAG,UAAU,EAAE,yBAAyB,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,kCAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,EACxG,SAAS,CACZ,CAAC;QACN,CAAC;IACL,CAAC;CACJ,CAAA;AApCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,qBAAU,GAAE;;GACA,mBAAmB,CAoC/B"}
|
package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js
CHANGED
|
@@ -19,6 +19,7 @@ const CommonMessageProcessor_1 = require("../helpers/CommonMessageProcessor");
|
|
|
19
19
|
const CommonRunsSchema_1 = require("../schema/CommonRunsSchema");
|
|
20
20
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
21
21
|
const constants_1 = require("../constants");
|
|
22
|
+
const RouteTypeEnums_1 = require("../../../../../helpers/RouteTypeEnums");
|
|
22
23
|
let SaveTramRunsToDBTask = class SaveTramRunsToDBTask extends workers_1.AbstractTask {
|
|
23
24
|
constructor() {
|
|
24
25
|
super(constants_1.WORKER_NAME);
|
|
@@ -35,10 +36,10 @@ let SaveTramRunsToDBTask = class SaveTramRunsToDBTask extends workers_1.Abstract
|
|
|
35
36
|
if (!timestamp) {
|
|
36
37
|
throw new golemio_errors_1.GeneralError(`Missing tram run message timestamp: ${JSON.stringify(data)}`, this.constructor.name);
|
|
37
38
|
}
|
|
38
|
-
const messages = this.messagesTransformation.transform({ data: data.M.V, timestamp }
|
|
39
|
+
const messages = this.messagesTransformation.transform({ data: data.M.V, timestamp });
|
|
39
40
|
const filteredMessages = this.messageFilter.yieldFilteredMessages(messages, timestamp);
|
|
40
|
-
for (const runMessage of filteredMessages) {
|
|
41
|
-
await this.messageProcessor.processTransformedRun(runMessage, timestamp);
|
|
41
|
+
for await (const runMessage of filteredMessages) {
|
|
42
|
+
await this.messageProcessor.processTransformedRun({ ...runMessage, notPublicVehicleRouteType: runMessage.isNotPublic ? RouteTypeEnums_1.GTFSRouteTypeEnum.TRAM : undefined }, timestamp);
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
};
|
package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveTramRunsToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAA2D;AAC3D,oEAA8E;AAC9E,2EAA6E;AAC7E,6EAAwE;AAExE,8EAA2E;AAC3E,8EAA2E;AAG3E,iEAAwE;AAExE,iEAAgE;AAChE,4CAA2C;
|
|
1
|
+
{"version":3,"file":"SaveTramRunsToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAA2D;AAC3D,oEAA8E;AAC9E,2EAA6E;AAC7E,6EAAwE;AAExE,8EAA2E;AAC3E,8EAA2E;AAG3E,iEAAwE;AAExE,iEAAgE;AAChE,4CAA2C;AAE3C,0EAA4D;AAGrD,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,sBAA8B;IAUpE;QACI,KAAK,CAAC,uBAAW,CAAC,CAAC;QAVP,cAAS,GAAG,kBAAkB,CAAC;QAC/B,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QACtC,WAAM,GAAG,6CAA0B,CAAC;QAShD,IAAI,CAAC,sBAAsB,GAAG,gBAAW,CAAC,OAAO,CAC7C,mCAAgB,CAAC,gCAAgC,CACpD,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,2CAAoB,EAAE,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxE,IAAI,CAAC,aAAa,GAAG,gBAAW,CAAC,OAAO,CAAoB,mCAAgB,CAAC,iBAAiB,CAAC,CAAC;IACpG,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,IAAsB,EAAE,aAAiC;QAC7E,MAAM,SAAS,GAAG,aAAa,EAAE,SAAS,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAAY,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACtF,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACvF,IAAI,KAAK,EAAE,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAC7C,EAAE,GAAG,UAAU,EAAE,yBAAyB,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,kCAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,EACzG,SAAS,CACZ,CAAC;QACN,CAAC;IACL,CAAC;CACJ,CAAA;AAnCY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,qBAAU,GAAE;;GACA,oBAAoB,CAmChC"}
|
|
@@ -5,7 +5,6 @@ export declare class CommonRunsMessagesTransformation extends AbstractTransforma
|
|
|
5
5
|
name: string;
|
|
6
6
|
private readonly commonRunHelper;
|
|
7
7
|
constructor();
|
|
8
|
-
transform: ({ data, timestamp }: ICommonRunsInputData
|
|
8
|
+
transform: ({ data, timestamp }: ICommonRunsInputData) => ICommonRunWithMessageDto[];
|
|
9
9
|
protected transformInternal: (element: ICommonRunsInputElement) => ICommonRunWithMessageDto;
|
|
10
|
-
private transformElementWithTram;
|
|
11
10
|
}
|
|
@@ -23,7 +23,7 @@ let CommonRunsMessagesTransformation = class CommonRunsMessagesTransformation ex
|
|
|
23
23
|
constructor() {
|
|
24
24
|
super();
|
|
25
25
|
this.name = "CommonRunsMessagesTransformation";
|
|
26
|
-
this.transform = ({ data, timestamp }
|
|
26
|
+
this.transform = ({ data, timestamp }) => {
|
|
27
27
|
const now = (0, moment_timezone_1.default)(timestamp).tz("Europe/Prague").format();
|
|
28
28
|
const res = [];
|
|
29
29
|
if (!Array.isArray(data)) {
|
|
@@ -31,7 +31,7 @@ let CommonRunsMessagesTransformation = class CommonRunsMessagesTransformation ex
|
|
|
31
31
|
}
|
|
32
32
|
for (const element of data) {
|
|
33
33
|
try {
|
|
34
|
-
const elementTransformed = this.
|
|
34
|
+
const elementTransformed = this.transformInternal({ data: element, timestamp: now });
|
|
35
35
|
res.push(elementTransformed);
|
|
36
36
|
}
|
|
37
37
|
catch (err) {
|
|
@@ -41,13 +41,7 @@ let CommonRunsMessagesTransformation = class CommonRunsMessagesTransformation ex
|
|
|
41
41
|
return res;
|
|
42
42
|
};
|
|
43
43
|
this.transformInternal = (element) => {
|
|
44
|
-
return this.transformElementWithTram(element, false);
|
|
45
|
-
};
|
|
46
|
-
this.transformElementWithTram = (element, isTram) => {
|
|
47
44
|
const attributes = element.data.$;
|
|
48
|
-
if (!isTram && !attributes.tjr) {
|
|
49
|
-
throw new golemio_errors_1.GeneralError("Missing tjr attribute", this.constructor.name);
|
|
50
|
-
}
|
|
51
45
|
const identifiers = this.commonRunHelper.getRunIdentifiers(attributes, element.timestamp);
|
|
52
46
|
const realStopTimestampDate = this.commonRunHelper.parseDateFromRunInput(attributes.takt);
|
|
53
47
|
const messageTimestampDate = this.commonRunHelper.parseDateFromRunInput(attributes.tm);
|
|
@@ -55,7 +49,7 @@ let CommonRunsMessagesTransformation = class CommonRunsMessagesTransformation ex
|
|
|
55
49
|
throw new golemio_errors_1.GeneralError("Missing identifiers or timestamps", this.constructor.name);
|
|
56
50
|
}
|
|
57
51
|
const scheduledStopTimestampDate = attributes.tjr ? this.commonRunHelper.parseDateFromRunInput(attributes.tjr) : null;
|
|
58
|
-
|
|
52
|
+
return {
|
|
59
53
|
run: {
|
|
60
54
|
id: identifiers.runId,
|
|
61
55
|
route_id: identifiers.routeId,
|
|
@@ -80,7 +74,6 @@ let CommonRunsMessagesTransformation = class CommonRunsMessagesTransformation ex
|
|
|
80
74
|
events: attributes.events,
|
|
81
75
|
},
|
|
82
76
|
};
|
|
83
|
-
return t;
|
|
84
77
|
};
|
|
85
78
|
this.commonRunHelper = new CommonRunHelper_1.CommonRunHelper();
|
|
86
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommonRunsMessagesTransformation.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2EAAoE;AACpE,6GAA0G;AAC1G,gEAA6D;AAG7D,gGAA+D;AAC/D,iEAAgE;AAChE,6EAAwE;AAGjE,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,+CAAyE;IAI3H;QACI,KAAK,EAAE,CAAC;QAJL,SAAI,GAAG,kCAAkC,CAAC;QAQ1C,cAAS,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAwB,
|
|
1
|
+
{"version":3,"file":"CommonRunsMessagesTransformation.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,11 @@ import { ICommonRunsModel } from "../../../../../../schema-definitions/vehicle-p
|
|
|
4
4
|
import { IVPTripsModel } from "../../../../../../schema-definitions/vehicle-positions/models/interfaces/IVPTripsModel";
|
|
5
5
|
import { IScheduleDto } from "../../../../../../schema-definitions/vehicle-positions/redis/interfaces/IGtfsRunTripCacheDto";
|
|
6
6
|
import { BulkSaveResult } from "@golemio/core/dist/integration-engine";
|
|
7
|
+
import { GTFSRouteTypeEnum } from "../../../../../../helpers/RouteTypeEnums";
|
|
7
8
|
import { IBulkUpsertOutput } from "../interfaces/TripRepositoryInterfaces";
|
|
8
9
|
export default class TripsMapper {
|
|
9
10
|
static mapCommonRunToDto(gtfsTrip: IScheduleDto, runInput: ICommonRunsModel): Partial<IVPTripsModel>;
|
|
10
|
-
static mapCommonRunNotPublicToDto(runInput: ICommonRunsModel, tripId: string, lastPositionId: string): Partial<IVPTripsModel>;
|
|
11
|
+
static mapCommonRunNotPublicToDto(runInput: ICommonRunsModel, tripId: string, lastPositionId: string, notPublicVehicleRouteType?: GTFSRouteTypeEnum.TRAM | GTFSRouteTypeEnum.BUS): Partial<IVPTripsModel>;
|
|
11
12
|
static mapMetroRunToDto(gtfsTrip: IScheduleDto, runInput: IExtendedMetroRunInputForProcessing): Partial<IVPTripsModel>;
|
|
12
13
|
static mapRegionalBusRunToDto(gtfsTrip: IScheduleDto, runInput: IRegionalBusRunInputWithMetadata): Partial<IVPTripsModel>;
|
|
13
14
|
static mapTripEntitiesToUpdateDto(tripEntities: BulkSaveResult<IVPTripsModel>, taskStartTimestamp: number): IBulkUpsertOutput;
|
|
@@ -23,17 +23,19 @@ class TripsMapper {
|
|
|
23
23
|
provider_source_type: ProviderSourceTypeEnum_1.ProviderSourceTypeEnum.TcpCommon,
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
|
-
static mapCommonRunNotPublicToDto(runInput, tripId, lastPositionId) {
|
|
26
|
+
static mapCommonRunNotPublicToDto(runInput, tripId, lastPositionId, notPublicVehicleRouteType) {
|
|
27
27
|
return {
|
|
28
28
|
agency_name_real: DPPUtils_1.default.DPP_AGENCY_NAME,
|
|
29
29
|
agency_name_scheduled: DPPUtils_1.default.DPP_AGENCY_NAME,
|
|
30
|
-
gtfs_route_type:
|
|
30
|
+
gtfs_route_type: notPublicVehicleRouteType,
|
|
31
31
|
origin_route_name: runInput.route_id,
|
|
32
32
|
internal_route_name: runInput.route_id,
|
|
33
33
|
run_number: runInput.run_number,
|
|
34
34
|
internal_run_number: runInput.run_number,
|
|
35
35
|
vehicle_registration_number: parseInt(runInput.registration_number),
|
|
36
|
-
vehicle_type_id:
|
|
36
|
+
vehicle_type_id: notPublicVehicleRouteType !== undefined
|
|
37
|
+
? TripsMapper.getVehicleTypeId(notPublicVehicleRouteType, false, false, false)
|
|
38
|
+
: RouteTypeEnums_1.MPVRouteTypesEnum.UNKNOWN,
|
|
37
39
|
wheelchair_accessible: runInput.wheelchair_accessible,
|
|
38
40
|
provider_source_type: ProviderSourceTypeEnum_1.ProviderSourceTypeEnum.TcpCommon,
|
|
39
41
|
id: tripId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TripsMapper.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.ts"],"names":[],"mappings":";;;;;AAAA,2EAAuD;AAGvD,sEAAwF;AACxF,uIAAoG;AAKpG,6EAAkF;AAElF,0EAAoD;AAEpD,MAAqB,WAAW;IACrB,MAAM,CAAC,iBAAiB,CAAC,QAAsB,EAAE,QAA0B;QAC9E,OAAO;YACH,GAAG,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC;YAC1C,EAAE,EAAE,0BAAkB,CAAC,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAChE,iBAAiB,EAAE,QAAQ,CAAC,QAAQ;YACpC,mBAAmB,EAAE,QAAQ,CAAC,QAAQ;YACtC,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,mBAAmB,EAAE,QAAQ,CAAC,UAAU;YACxC,2BAA2B,EAAE,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACnE,eAAe,EAAE,WAAW,CAAC,gBAAgB,CACzC,CAAC,QAAQ,CAAC,UAAU,EACpB,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EACpB,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EACvB,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CACtC;YACD,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;YACrD,oBAAoB,EAAE,+CAAsB,CAAC,SAAS;SACzD,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,0BAA0B,CACpC,QAA0B,EAC1B,MAAc,EACd,cAAsB;
|
|
1
|
+
{"version":3,"file":"TripsMapper.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GTFSRouteTypeEnum } from "../../../../../helpers/RouteTypeEnums";
|
|
1
2
|
import { ICommonRunsMessagesModel } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunsMessagesModel";
|
|
2
3
|
import { ICommonRunsModel } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunsModel";
|
|
3
4
|
export interface IRunMessageWithStringTimestamps extends Omit<ICommonRunsMessagesModel, "actual_stop_timestamp_real" | "actual_stop_timestamp_scheduled"> {
|
|
@@ -7,4 +8,14 @@ export interface IRunMessageWithStringTimestamps extends Omit<ICommonRunsMessage
|
|
|
7
8
|
export interface IUpdateRunsGtfsTripInput {
|
|
8
9
|
run: ICommonRunsModel;
|
|
9
10
|
run_message: IRunMessageWithStringTimestamps;
|
|
11
|
+
/**
|
|
12
|
+
* Flag set by message filters to indicate this is a not-public vehicle
|
|
13
|
+
* (replacement bus/tram without schedule, or ad-hoc route)
|
|
14
|
+
* Used to avoid duplicate whitelist checks
|
|
15
|
+
*/
|
|
16
|
+
isNotPublic?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Vehicle type for not-public vehicles. Only populated when isNotPublic is true.
|
|
19
|
+
*/
|
|
20
|
+
notPublicVehicleRouteType?: GTFSRouteTypeEnum.TRAM | GTFSRouteTypeEnum.BUS;
|
|
10
21
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { ICommonRunsModel } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunsModel";
|
|
2
2
|
import { IRunMessageWithStringTimestamps, IUpdateRunsGtfsTripInput } from "../interfaces/IUpdateRunsGtfsTripInput";
|
|
3
|
+
import { GTFSRouteTypeEnum } from "../../../../../helpers/RouteTypeEnums";
|
|
3
4
|
export declare class UpdateRunsGtfsTripIdValidationSchema implements IUpdateRunsGtfsTripInput {
|
|
4
5
|
run: ICommonRunsModel;
|
|
5
6
|
run_message: IRunMessageWithStringTimestamps;
|
|
7
|
+
isNotPublic?: boolean;
|
|
8
|
+
notPublicVehicleRouteType?: GTFSRouteTypeEnum.TRAM | GTFSRouteTypeEnum.BUS;
|
|
6
9
|
}
|
|
@@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.UpdateRunsGtfsTripIdValidationSchema = void 0;
|
|
13
13
|
const class_validator_1 = require("@golemio/core/dist/shared/class-validator");
|
|
14
|
+
const RouteTypeEnums_1 = require("../../../../../helpers/RouteTypeEnums");
|
|
14
15
|
class UpdateRunsGtfsTripIdValidationSchema {
|
|
15
16
|
}
|
|
16
17
|
exports.UpdateRunsGtfsTripIdValidationSchema = UpdateRunsGtfsTripIdValidationSchema;
|
|
@@ -22,4 +23,14 @@ __decorate([
|
|
|
22
23
|
(0, class_validator_1.IsObject)(),
|
|
23
24
|
__metadata("design:type", Object)
|
|
24
25
|
], UpdateRunsGtfsTripIdValidationSchema.prototype, "run_message", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, class_validator_1.IsOptional)(),
|
|
28
|
+
(0, class_validator_1.IsBoolean)(),
|
|
29
|
+
__metadata("design:type", Boolean)
|
|
30
|
+
], UpdateRunsGtfsTripIdValidationSchema.prototype, "isNotPublic", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, class_validator_1.IsOptional)(),
|
|
33
|
+
(0, class_validator_1.IsIn)([RouteTypeEnums_1.GTFSRouteTypeEnum.TRAM, RouteTypeEnums_1.GTFSRouteTypeEnum.BUS]),
|
|
34
|
+
__metadata("design:type", Number)
|
|
35
|
+
], UpdateRunsGtfsTripIdValidationSchema.prototype, "notPublicVehicleRouteType", void 0);
|
|
25
36
|
//# sourceMappingURL=UpdateRunsGtfsTripIdSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateRunsGtfsTripIdSchema.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,+
|
|
1
|
+
{"version":3,"file":"UpdateRunsGtfsTripIdSchema.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,+EAAkG;AAElG,0EAA4D;AAE5D,MAAa,oCAAoC;CAchD;AAdD,oFAcC;AAZG;IADC,IAAA,0BAAQ,GAAE;;iEACY;AAGvB;IADC,IAAA,0BAAQ,GAAE;;yEACmC;AAI9C;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;yEACU;AAItB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,sBAAI,EAAC,CAAC,kCAAiB,CAAC,IAAI,EAAE,kCAAiB,CAAC,GAAG,CAAC,CAAC;;uFACqB"}
|