@golemio/pid 2.9.6-dev.1070039655 → 2.9.6-dev.1071888841
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/db/example/02_pid_line_example_115.sql +4 -4
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.d.ts +17 -0
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js +50 -0
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js.map +1 -1
- package/package.json +1 -1
|
@@ -94,10 +94,10 @@ WITH init_values AS (
|
|
|
94
94
|
)
|
|
95
95
|
INSERT INTO "vehiclepositions_trips"("cis_line_id","cis_trip_number","run_number","cis_line_short_name","created_at","gtfs_route_id","gtfs_route_short_name","gtfs_trip_id","id","updated_at","start_cis_stop_id","start_cis_stop_platform_code","start_time","start_timestamp","vehicle_type_id","wheelchair_accessible","create_batch_id","created_by","update_batch_id","updated_by","agency_name_scheduled","origin_route_name","agency_name_real","vehicle_registration_number","gtfs_trip_headsign","start_asw_stop_id","gtfs_route_type","gtfs_block_id","last_position_id","is_canceled","end_timestamp","gtfs_trip_short_name")
|
|
96
96
|
VALUES
|
|
97
|
-
(E'100115',1061,39,E'115',E'2021-07-26 10:00:12.568+02',E'L115',E'115',E'115_6_201230',E'2021-07-26T08:30:00Z_100115_115_1061',(SELECT updated_at FROM init_values),56714,E'D',E'10:
|
|
98
|
-
(E'100115',1061,39,E'115',E'2021-07-26 10:00:12.568+02',E'L115',E'115',E'115_6_201230_V1',E'2021-07-26T08:30:00Z_100115_115_1061_V1',(SELECT updated_at FROM init_values),56714,E'D',E'10:
|
|
99
|
-
(E'100115',1061,39,E'115',E'2021-07-26 10:00:12.568+02',E'L115',E'115',E'115_6_201230_V2',E'2021-07-26T08:30:00Z_100115_115_1061_V2',(SELECT updated_at FROM init_values),56714,E'D',E'10:
|
|
100
|
-
(E'100115',1061,39,E'115',E'2021-07-26 10:00:12.568+02',E'L115',E'115',E'115_6_201230_V3',E'2021-07-26T08:30:00Z_100115_115_1061_V3',(SELECT updated_at FROM init_values),56714,E'D',E'10:
|
|
97
|
+
(E'100115',1061,39,E'115',E'2021-07-26 10:00:12.568+02',E'L115',E'115',E'115_6_201230',E'2021-07-26T08:30:00Z_100115_115_1061',(SELECT updated_at FROM init_values),56714,E'D',E'10:41:00',(SELECT start_datetime FROM init_values),3,TRUE,1000000115,NULL,NULL,NULL,E'ČSAD POLKOST',E'115',E'ČSAD POLKOST',1861,E'Chodov',NULL,3,NULL,1740029522,FALSE,(SELECT end_datetime FROM init_values),NULL),
|
|
98
|
+
(E'100115',1061,39,E'115',E'2021-07-26 10:00:12.568+02',E'L115',E'115',E'115_6_201230_V1',E'2021-07-26T08:30:00Z_100115_115_1061_V1',(SELECT updated_at FROM init_values),56714,E'D',E'10:41:00',(SELECT start_datetime FROM init_values),3,TRUE,1000000115,NULL,NULL,NULL,E'ČSAD POLKOST',E'115',E'ČSAD POLKOST',1861,E'Chodov',NULL,3,NULL,1740057206,FALSE,(SELECT end_datetime FROM init_values),NULL),
|
|
99
|
+
(E'100115',1061,39,E'115',E'2021-07-26 10:00:12.568+02',E'L115',E'115',E'115_6_201230_V2',E'2021-07-26T08:30:00Z_100115_115_1061_V2',(SELECT updated_at FROM init_values),56714,E'D',E'10:41:00',(SELECT start_datetime FROM init_values),3,TRUE,1000000115,NULL,NULL,NULL,E'ČSAD POLKOST',E'115',E'ČSAD POLKOST',1861,E'Chodov',NULL,3,NULL,1740058453,FALSE,(SELECT end_datetime FROM init_values),'115_short'),
|
|
100
|
+
(E'100115',1061,39,E'115',E'2021-07-26 10:00:12.568+02',E'L115',E'115',E'115_6_201230_V3',E'2021-07-26T08:30:00Z_100115_115_1061_V3',(SELECT updated_at FROM init_values),56714,E'D',E'10:41:00',(SELECT start_datetime FROM init_values),3,TRUE,1000000115,NULL,NULL,NULL,E'ČSAD POLKOST',E'115',E'ČSAD POLKOST',1861,E'Chodov',NULL,3,NULL,1740029525,FALSE,(SELECT end_datetime FROM init_values),'115_short');
|
|
101
101
|
|
|
102
102
|
WITH init_values AS (
|
|
103
103
|
select make_timestamptz(
|
package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.d.ts
CHANGED
|
@@ -9,6 +9,23 @@ export declare class GenerateFilesTask extends AbstractEmptyTask {
|
|
|
9
9
|
private readonly vehicleDescriptor;
|
|
10
10
|
constructor(queuePrefix: string);
|
|
11
11
|
protected execute(): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Get rid of vehicle descriptors with duplicate IDs from a given GTFS-RT message
|
|
14
|
+
*
|
|
15
|
+
* @param message The message to get rid of duplicate vehicle descriptors from
|
|
16
|
+
* @param tripData The trip data to get start timestamps from
|
|
17
|
+
*/
|
|
18
|
+
private removeDuplicateVehicleDescriptors;
|
|
19
|
+
/**
|
|
20
|
+
* Update a given `EntityWithTripStartByVehicleId` Map with given values if the entity has a lower trip start date/time and is
|
|
21
|
+
* not canceled
|
|
22
|
+
*
|
|
23
|
+
* @param entityWithTripStartByVehicleId The Map to update
|
|
24
|
+
* @param vehicleId The vehicle ID to use as a key
|
|
25
|
+
* @param entity The entity to use as part of the new value, if the conditions are met
|
|
26
|
+
* @param entityTripStart The entity trip start date/time to use as part of the new value, if the conditions are met
|
|
27
|
+
*/
|
|
28
|
+
private conditionallyUpdateEntityByVehicleId;
|
|
12
29
|
private generateStopTimeUpdate;
|
|
13
30
|
private createFeedHeader;
|
|
14
31
|
/**
|
package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js
CHANGED
|
@@ -91,12 +91,62 @@ class GenerateFilesTask extends workers_1.AbstractEmptyTask {
|
|
|
91
91
|
}
|
|
92
92
|
pidFeedMessage.entity.push(feedMessageEntity);
|
|
93
93
|
}
|
|
94
|
+
this.removeDuplicateVehicleDescriptors(positionsMessage, tripData);
|
|
95
|
+
this.removeDuplicateVehicleDescriptors(pidFeedMessage, tripData);
|
|
94
96
|
this.validateAndSaveBuffer("trip_updates", updatesMessage);
|
|
95
97
|
this.validateAndSaveBuffer("vehicle_positions", positionsMessage);
|
|
96
98
|
this.validateAndSaveBuffer("pid_feed", pidFeedMessage);
|
|
97
99
|
yield this.alertsGenerator.generateAlerts(feedHeader);
|
|
98
100
|
});
|
|
99
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Get rid of vehicle descriptors with duplicate IDs from a given GTFS-RT message
|
|
104
|
+
*
|
|
105
|
+
* @param message The message to get rid of duplicate vehicle descriptors from
|
|
106
|
+
* @param tripData The trip data to get start timestamps from
|
|
107
|
+
*/
|
|
108
|
+
removeDuplicateVehicleDescriptors(message, tripData) {
|
|
109
|
+
var _a, _b, _c;
|
|
110
|
+
if (!message.entity)
|
|
111
|
+
return;
|
|
112
|
+
const entitiesWithoutVehicleId = [];
|
|
113
|
+
const entityWithTripStartByVehicleId = new Map();
|
|
114
|
+
for (let i = 0; i < message.entity.length; i++) {
|
|
115
|
+
const entity = message.entity[i];
|
|
116
|
+
const vehicleId = (_c = (_b = (_a = entity.vehicle) === null || _a === void 0 ? void 0 : _a.vehicle) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : null;
|
|
117
|
+
const entityTripStart = new Date(tripData[i].start_timestamp);
|
|
118
|
+
if (vehicleId === null) {
|
|
119
|
+
entitiesWithoutVehicleId.push(entity);
|
|
120
|
+
}
|
|
121
|
+
else if (!entityWithTripStartByVehicleId.has(vehicleId)) {
|
|
122
|
+
entityWithTripStartByVehicleId.set(vehicleId, { entity, entityTripStart });
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
this.conditionallyUpdateEntityByVehicleId(entityWithTripStartByVehicleId, vehicleId, entity, entityTripStart);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
message.entity = entitiesWithoutVehicleId;
|
|
129
|
+
for (const { entity } of entityWithTripStartByVehicleId.values())
|
|
130
|
+
message.entity.push(entity);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Update a given `EntityWithTripStartByVehicleId` Map with given values if the entity has a lower trip start date/time and is
|
|
134
|
+
* not canceled
|
|
135
|
+
*
|
|
136
|
+
* @param entityWithTripStartByVehicleId The Map to update
|
|
137
|
+
* @param vehicleId The vehicle ID to use as a key
|
|
138
|
+
* @param entity The entity to use as part of the new value, if the conditions are met
|
|
139
|
+
* @param entityTripStart The entity trip start date/time to use as part of the new value, if the conditions are met
|
|
140
|
+
*/
|
|
141
|
+
conditionallyUpdateEntityByVehicleId(entityWithTripStartByVehicleId, vehicleId, entity, entityTripStart) {
|
|
142
|
+
var _a, _b, _c;
|
|
143
|
+
const mapItem = entityWithTripStartByVehicleId.get(vehicleId);
|
|
144
|
+
const entityTripScheduleRelationship = (_c = (_b = (_a = entity.vehicle) === null || _a === void 0 ? void 0 : _a.trip) === null || _b === void 0 ? void 0 : _b.scheduleRelationship) !== null && _c !== void 0 ? _c : null;
|
|
145
|
+
if (entityTripScheduleRelationship !== ovapi_gtfs_realtime_bindings_1.transit_realtime.TripDescriptor.ScheduleRelationship.CANCELED &&
|
|
146
|
+
entityTripStart < mapItem.entityTripStart) {
|
|
147
|
+
entityWithTripStartByVehicleId.set(vehicleId, { entity, entityTripStart });
|
|
148
|
+
}
|
|
149
|
+
}
|
|
100
150
|
generateStopTimeUpdate(stopTimeEvents) {
|
|
101
151
|
const stopTimeUpdates = [];
|
|
102
152
|
for (const stopTimeEvent of stopTimeEvents) {
|
package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenerateFilesTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAkF;AAClF,wCAA2D;AAC3D,yFAA8G;AAE9G,mEAA2E;AAC3E,2EAAkF;AAClF,wFAAyF;AACzF,gFAA6E;AAC7E,gEAA6D;AAC7D,4CAA8C;AAC9C,oEAAiE;
|
|
1
|
+
{"version":3,"file":"GenerateFilesTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.ts"],"names":[],"mappings":"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"}
|