@golemio/pid 2.9.4-dev.1032878036 → 2.9.4-dev.1035937290
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/db/migrations/postgresql/sqls/20231009141316-positions-tracked-down.sql +3 -0
- package/db/migrations/postgresql/sqls/20231009141316-positions-tracked-up.sql +3 -0
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.d.ts +1 -0
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js +32 -26
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,6 +5,9 @@ drop view v_vehiclepositions_trip_position_vehicle_info;
|
|
|
5
5
|
alter table vehiclepositions_positions rename column is_tracked to tracking;
|
|
6
6
|
alter table vehiclepositions_positions alter column tracking type int using case tracking when true then 2 else 0 end;
|
|
7
7
|
|
|
8
|
+
alter table vehiclepositions_positions_history rename column is_tracked to tracking;
|
|
9
|
+
alter table vehiclepositions_positions_history alter column tracking type int using case tracking when true then 2 else 0 end;
|
|
10
|
+
|
|
8
11
|
-- recreate views
|
|
9
12
|
create view v_vehiclepositions_alerts_last_position as
|
|
10
13
|
SELECT t2.created_at,
|
|
@@ -5,6 +5,9 @@ drop view v_vehiclepositions_trip_position_vehicle_info;
|
|
|
5
5
|
alter table vehiclepositions_positions rename column tracking to is_tracked;
|
|
6
6
|
alter table vehiclepositions_positions alter column is_tracked type boolean using is_tracked::boolean;
|
|
7
7
|
|
|
8
|
+
alter table vehiclepositions_positions_history rename column tracking to is_tracked;
|
|
9
|
+
alter table vehiclepositions_positions_history alter column is_tracked type boolean using is_tracked::boolean;
|
|
10
|
+
|
|
8
11
|
-- recreate views
|
|
9
12
|
create view v_vehiclepositions_alerts_last_position as
|
|
10
13
|
SELECT t2.created_at,
|
package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export declare class GenerateFilesTask extends AbstractEmptyTask {
|
|
|
9
9
|
private readonly vehicleDescriptor;
|
|
10
10
|
constructor(queuePrefix: string);
|
|
11
11
|
protected execute(): Promise<void>;
|
|
12
|
+
private generateStopTimeUpdate;
|
|
12
13
|
private createFeedHeader;
|
|
13
14
|
/**
|
|
14
15
|
* Parse UTC date from ISO timestamp
|
package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js
CHANGED
|
@@ -52,28 +52,6 @@ class GenerateFilesTask extends workers_1.AbstractEmptyTask {
|
|
|
52
52
|
};
|
|
53
53
|
const vehicleDescriptor = this.vehicleDescriptor.getVehicleDescriptor(tripRecord);
|
|
54
54
|
const entityTimestamp = Math.round(new Date(tripRecord.last_position.origin_timestamp).getTime() / 1000);
|
|
55
|
-
const stopTimeUpdates = [];
|
|
56
|
-
for (const stopTimeEvent of tripRecord.stop_times) {
|
|
57
|
-
stopTimeUpdates.push({
|
|
58
|
-
arrival: {
|
|
59
|
-
delay: stopTimeEvent.arrival_delay_seconds,
|
|
60
|
-
},
|
|
61
|
-
departure: {
|
|
62
|
-
delay: stopTimeEvent.departure_delay_seconds,
|
|
63
|
-
},
|
|
64
|
-
stopSequence: stopTimeEvent.stop_sequence,
|
|
65
|
-
stopId: stopTimeEvent.stop_id,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
const updateEntity = {
|
|
69
|
-
id: tripRecord.id,
|
|
70
|
-
tripUpdate: {
|
|
71
|
-
stopTimeUpdate: stopTimeUpdates,
|
|
72
|
-
timestamp: entityTimestamp,
|
|
73
|
-
trip: tripDescriptor,
|
|
74
|
-
vehicle: vehicleDescriptor,
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
55
|
const positionEntity = {
|
|
78
56
|
id: tripRecord.id,
|
|
79
57
|
vehicle: {
|
|
@@ -90,13 +68,27 @@ class GenerateFilesTask extends workers_1.AbstractEmptyTask {
|
|
|
90
68
|
vehicle: vehicleDescriptor,
|
|
91
69
|
},
|
|
92
70
|
};
|
|
93
|
-
const updatesMessageEntity = ovapi_gtfs_realtime_bindings_1.transit_realtime.FeedEntity.fromObject(updateEntity);
|
|
94
|
-
updatesMessage.entity.push(updatesMessageEntity);
|
|
95
71
|
const positionsMessageEntity = ovapi_gtfs_realtime_bindings_1.transit_realtime.FeedEntity.fromObject(positionEntity);
|
|
96
72
|
positionsMessage.entity.push(positionsMessageEntity);
|
|
97
73
|
// single feed for trip updates and vehicle positions
|
|
98
|
-
const feedMessageEntity = structuredClone(
|
|
99
|
-
|
|
74
|
+
const feedMessageEntity = structuredClone(positionsMessageEntity);
|
|
75
|
+
const stopTimeUpdates = this.generateStopTimeUpdate(tripRecord.stop_times);
|
|
76
|
+
const shouldSkipTripUpdate = stopTimeUpdates.every((el) => el.scheduleRelationship === ovapi_gtfs_realtime_bindings_1.transit_realtime.TripUpdate.StopTimeUpdate.ScheduleRelationship.NO_DATA);
|
|
77
|
+
if (!shouldSkipTripUpdate) {
|
|
78
|
+
const updateEntity = {
|
|
79
|
+
id: tripRecord.id,
|
|
80
|
+
tripUpdate: {
|
|
81
|
+
stopTimeUpdate: stopTimeUpdates,
|
|
82
|
+
timestamp: entityTimestamp,
|
|
83
|
+
trip: tripDescriptor,
|
|
84
|
+
vehicle: vehicleDescriptor,
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
const updatesMessageEntity = ovapi_gtfs_realtime_bindings_1.transit_realtime.FeedEntity.fromObject(updateEntity);
|
|
88
|
+
updatesMessage.entity.push(updatesMessageEntity);
|
|
89
|
+
// single feed for trip updates and vehicle positions
|
|
90
|
+
feedMessageEntity.tripUpdate = updatesMessageEntity.tripUpdate;
|
|
91
|
+
}
|
|
100
92
|
pidFeedMessage.entity.push(feedMessageEntity);
|
|
101
93
|
}
|
|
102
94
|
this.validateAndSaveBuffer("trip_updates", updatesMessage);
|
|
@@ -105,6 +97,20 @@ class GenerateFilesTask extends workers_1.AbstractEmptyTask {
|
|
|
105
97
|
yield this.alertsGenerator.generateAlerts(feedHeader);
|
|
106
98
|
});
|
|
107
99
|
}
|
|
100
|
+
generateStopTimeUpdate(stopTimeEvents) {
|
|
101
|
+
const stopTimeUpdates = [];
|
|
102
|
+
for (const stopTimeEvent of stopTimeEvents) {
|
|
103
|
+
stopTimeUpdates.push(Object.assign(Object.assign({ arrival: {
|
|
104
|
+
delay: stopTimeEvent.arrival_delay_seconds,
|
|
105
|
+
}, departure: {
|
|
106
|
+
delay: stopTimeEvent.departure_delay_seconds,
|
|
107
|
+
} }, (stopTimeEvent.arrival_delay_seconds === null &&
|
|
108
|
+
stopTimeEvent.departure_delay_seconds === null && {
|
|
109
|
+
scheduleRelationship: ovapi_gtfs_realtime_bindings_1.transit_realtime.TripUpdate.StopTimeUpdate.ScheduleRelationship.NO_DATA,
|
|
110
|
+
})), { stopSequence: stopTimeEvent.stop_sequence, stopId: stopTimeEvent.stop_id }));
|
|
111
|
+
}
|
|
112
|
+
return stopTimeUpdates;
|
|
113
|
+
}
|
|
108
114
|
createFeedHeader() {
|
|
109
115
|
const header = {
|
|
110
116
|
gtfsRealtimeVersion: "2.0",
|
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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"}
|