@golemio/pid 2.1.13-dev.509351734 → 2.1.13
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/{00_truncate_tables.sql → __truncate_tables.sql} +0 -0
- package/db/example/{01_departure_directions.sql → departure_directions.sql} +0 -0
- package/db/example/{02_pid_line_example_115.sql → pid_line_example_115.sql} +0 -0
- package/db/example/{03_ropidgtfs_dump.sql → ropid_gtfs_dump.sql} +27 -27
- package/db/example/{04_ropidvymi_example.sql → ropidvymi_example.sql} +0 -0
- package/db/example/{07_tmp_example.sql → tmp_example.sql} +0 -0
- package/db/example/{pb/trip_updates.pb → trip_updates.pb} +0 -0
- package/db/example/{pb/vehicle_positions.pb → vehicle_positions.pb} +0 -0
- package/db/example/{05_vehicle_positions_dump.sql → vehicle_positions_dump.sql} +0 -0
- package/db/example/{99_precomputed_tables.sql → zzz_precomputed_tables.sql} +0 -0
- package/dist/const.d.ts +0 -4
- package/dist/const.js +1 -6
- package/dist/const.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/RopidGTFSScheduledTripsModel.d.ts +1 -1
- package/dist/integration-engine/ropid-gtfs/RopidGTFSStopTimesModel.d.ts +0 -11
- package/dist/integration-engine/ropid-gtfs/RopidGTFSStopTimesModel.js +0 -34
- package/dist/integration-engine/ropid-gtfs/RopidGTFSStopTimesModel.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/RopidGTFSTripsModel.js +1 -2
- package/dist/integration-engine/ropid-gtfs/RopidGTFSTripsModel.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/RopidGTFSWorker.js +2 -2
- package/dist/integration-engine/ropid-gtfs/RopidGTFSWorker.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsPositionsModel.d.ts → VehiclePositionsPositionsModel.d.ts} +3 -3
- package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsPositionsModel.js → VehiclePositionsPositionsModel.js} +3 -3
- package/dist/integration-engine/vehicle-positions/VehiclePositionsPositionsModel.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsRunsMessagesModel.d.ts → VehiclePositionsRunsMessagesModel.d.ts} +0 -0
- package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsRunsMessagesModel.js → VehiclePositionsRunsMessagesModel.js} +5 -5
- package/dist/integration-engine/vehicle-positions/VehiclePositionsRunsMessagesModel.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsRunsModel.d.ts → VehiclePositionsRunsModel.d.ts} +2 -2
- package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsRunsModel.js → VehiclePositionsRunsModel.js} +2 -2
- package/dist/integration-engine/vehicle-positions/VehiclePositionsRunsModel.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/{transformations/VehiclePositionsRunsTransformation.d.ts → VehiclePositionsRunsTransformation.d.ts} +1 -1
- package/dist/integration-engine/vehicle-positions/{transformations/VehiclePositionsRunsTransformation.js → VehiclePositionsRunsTransformation.js} +1 -1
- package/dist/integration-engine/vehicle-positions/VehiclePositionsRunsTransformation.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsStopsModel.d.ts → VehiclePositionsStopsModel.d.ts} +0 -0
- package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsStopsModel.js → VehiclePositionsStopsModel.js} +1 -1
- package/dist/integration-engine/vehicle-positions/VehiclePositionsStopsModel.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/VehiclePositionsTransformation.d.ts +49 -0
- package/dist/integration-engine/vehicle-positions/{transformations/VehiclePositionsTransformation.js → VehiclePositionsTransformation.js} +45 -42
- package/dist/integration-engine/vehicle-positions/VehiclePositionsTransformation.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsTripsModel.d.ts → VehiclePositionsTripsModel.d.ts} +7 -5
- package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsTripsModel.js → VehiclePositionsTripsModel.js} +30 -48
- package/dist/integration-engine/vehicle-positions/VehiclePositionsTripsModel.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/VehiclePositionsWorker.d.ts +90 -43
- package/dist/integration-engine/vehicle-positions/VehiclePositionsWorker.js +213 -327
- package/dist/integration-engine/vehicle-positions/VehiclePositionsWorker.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/index.d.ts +5 -2
- package/dist/integration-engine/vehicle-positions/index.js +5 -2
- package/dist/integration-engine/vehicle-positions/index.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.js +1 -1
- package/dist/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.js.map +1 -1
- package/dist/schema-definitions/vehicle-positions/index.d.ts +2 -9
- package/dist/schema-definitions/vehicle-positions/index.js +2 -18
- package/dist/schema-definitions/vehicle-positions/index.js.map +1 -1
- package/package.json +82 -83
- package/db/example/06_ropidgtfs_train_trips_stop_times.sql +0 -83
- package/dist/integration-engine/vehicle-positions/VehiclePositionsInterfaces.d.ts +0 -152
- package/dist/integration-engine/vehicle-positions/VehiclePositionsInterfaces.js +0 -3
- package/dist/integration-engine/vehicle-positions/VehiclePositionsInterfaces.js.map +0 -1
- package/dist/integration-engine/vehicle-positions/VehiclePositionsUtils.d.ts +0 -22
- package/dist/integration-engine/vehicle-positions/VehiclePositionsUtils.js +0 -53
- package/dist/integration-engine/vehicle-positions/VehiclePositionsUtils.js.map +0 -1
- package/dist/integration-engine/vehicle-positions/models/VehiclePositionsPositionsModel.js.map +0 -1
- package/dist/integration-engine/vehicle-positions/models/VehiclePositionsRunsMessagesModel.js.map +0 -1
- package/dist/integration-engine/vehicle-positions/models/VehiclePositionsRunsModel.js.map +0 -1
- package/dist/integration-engine/vehicle-positions/models/VehiclePositionsStopsModel.js.map +0 -1
- package/dist/integration-engine/vehicle-positions/models/VehiclePositionsTripsModel.js.map +0 -1
- package/dist/integration-engine/vehicle-positions/models/index.d.ts +0 -5
- package/dist/integration-engine/vehicle-positions/models/index.js +0 -18
- package/dist/integration-engine/vehicle-positions/models/index.js.map +0 -1
- package/dist/integration-engine/vehicle-positions/transformations/VehiclePositionsRunsTransformation.js.map +0 -1
- package/dist/integration-engine/vehicle-positions/transformations/VehiclePositionsTransformation.d.ts +0 -108
- package/dist/integration-engine/vehicle-positions/transformations/VehiclePositionsTransformation.js.map +0 -1
- package/dist/integration-engine/vehicle-positions/transformations/index.d.ts +0 -2
- package/dist/integration-engine/vehicle-positions/transformations/index.js +0 -15
- package/dist/integration-engine/vehicle-positions/transformations/index.js.map +0 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Moment } from "@golemio/core/dist/shared/moment-timezone";
|
|
2
|
+
import { BaseTransformation, ITransformation } from "@golemio/core/dist/integration-engine/transformations";
|
|
3
|
+
export declare class VehiclePositionsTransformation extends BaseTransformation implements ITransformation {
|
|
4
|
+
name: string;
|
|
5
|
+
private static ORIGIN_TIME_FORMAT;
|
|
6
|
+
constructor();
|
|
7
|
+
/**
|
|
8
|
+
* Overrides BaseTransformation::transform
|
|
9
|
+
*/
|
|
10
|
+
transform: (data: any | any[]) => Promise<any | any[]>;
|
|
11
|
+
/**
|
|
12
|
+
* Deduce UTC timestamp of start of trip and UTC timestamp of current position
|
|
13
|
+
*
|
|
14
|
+
* @param {any} firstStopXML - parsed object of first stop
|
|
15
|
+
* @param {string} positionTimestampXML - XML attribute of local timestamp of position (HH:mm:ss)
|
|
16
|
+
* @returns {{ startTimestamp: Moment; positionTimestamp: Moment }}
|
|
17
|
+
*/
|
|
18
|
+
protected deduceTimestamps: (firstStopXML: any, positionTimestampXML: string) => Promise<{
|
|
19
|
+
startTimestamp: Moment;
|
|
20
|
+
positionTimestamp: Moment;
|
|
21
|
+
}>;
|
|
22
|
+
protected transformElement: (element: any) => Promise<{
|
|
23
|
+
position: any;
|
|
24
|
+
stops: any[];
|
|
25
|
+
trip: any;
|
|
26
|
+
} | null>;
|
|
27
|
+
/**
|
|
28
|
+
* Returns -1 if start hour is 12-23 and now is 0-12, 1 if start hour is 18-23 and now 0-6, else 0
|
|
29
|
+
*
|
|
30
|
+
* @param {Moment} now - Moment of position
|
|
31
|
+
* @param {Moment} start - Moment of start of trip
|
|
32
|
+
* @returns {number}
|
|
33
|
+
*/
|
|
34
|
+
private checkMidnight;
|
|
35
|
+
/**
|
|
36
|
+
* Fix source negative bearing value due to overflow by adding 256
|
|
37
|
+
*
|
|
38
|
+
* @param {number} bearing
|
|
39
|
+
* @returns {number}
|
|
40
|
+
*/
|
|
41
|
+
private fixSourceNegativeBearing;
|
|
42
|
+
/**
|
|
43
|
+
* Format input stop id from DPP agency (XXX000Y to XXX/Y) to ASW id
|
|
44
|
+
*
|
|
45
|
+
* @param {string} stopId
|
|
46
|
+
* @returns {stringList}
|
|
47
|
+
*/
|
|
48
|
+
private formatASWStopId;
|
|
49
|
+
}
|
|
@@ -15,8 +15,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.VehiclePositionsTransformation = void 0;
|
|
16
16
|
const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
|
|
17
17
|
const transformations_1 = require("@golemio/core/dist/integration-engine/transformations");
|
|
18
|
-
const vehicle_positions_1 = require("
|
|
19
|
-
const const_1 = require("
|
|
18
|
+
const vehicle_positions_1 = require("../../schema-definitions/vehicle-positions");
|
|
19
|
+
const const_1 = require("../../const");
|
|
20
20
|
class VehiclePositionsTransformation extends transformations_1.BaseTransformation {
|
|
21
21
|
constructor() {
|
|
22
22
|
super();
|
|
@@ -24,7 +24,7 @@ class VehiclePositionsTransformation extends transformations_1.BaseTransformatio
|
|
|
24
24
|
* Overrides BaseTransformation::transform
|
|
25
25
|
*/
|
|
26
26
|
this.transform = (data) => __awaiter(this, void 0, void 0, function* () {
|
|
27
|
-
|
|
27
|
+
const res = {
|
|
28
28
|
positions: [],
|
|
29
29
|
stops: [],
|
|
30
30
|
trips: [],
|
|
@@ -41,6 +41,40 @@ class VehiclePositionsTransformation extends transformations_1.BaseTransformatio
|
|
|
41
41
|
}
|
|
42
42
|
return res;
|
|
43
43
|
});
|
|
44
|
+
/**
|
|
45
|
+
* Deduce UTC timestamp of start of trip and UTC timestamp of current position
|
|
46
|
+
*
|
|
47
|
+
* @param {any} firstStopXML - parsed object of first stop
|
|
48
|
+
* @param {string} positionTimestampXML - XML attribute of local timestamp of position (HH:mm:ss)
|
|
49
|
+
* @returns {{ startTimestamp: Moment; positionTimestamp: Moment }}
|
|
50
|
+
*/
|
|
51
|
+
this.deduceTimestamps = (firstStopXML, positionTimestampXML) => __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
const now = moment_timezone_1.default.tz("Europe/Prague");
|
|
53
|
+
let isOverMidnight = 0;
|
|
54
|
+
// creating startDate and timestamp from zast[0].prij and cpoz
|
|
55
|
+
const startTimestamp = now.clone();
|
|
56
|
+
let startDatePlain = firstStopXML.$.prij || firstStopXML.$.odj;
|
|
57
|
+
startDatePlain = startDatePlain.split(":");
|
|
58
|
+
// eslint-disable-next-line prettier/prettier
|
|
59
|
+
startTimestamp.hour(parseInt(startDatePlain[0], 10)).minute(parseInt(startDatePlain[1], 10)).second(0).millisecond(0);
|
|
60
|
+
// midnight checking
|
|
61
|
+
isOverMidnight = this.checkMidnight(now, startTimestamp); // returns -1, 1 or 0
|
|
62
|
+
startTimestamp.add(isOverMidnight, "d");
|
|
63
|
+
const positionTimestamp = now.clone();
|
|
64
|
+
const timestampPlain = positionTimestampXML.split(":");
|
|
65
|
+
positionTimestamp
|
|
66
|
+
.hour(parseInt(timestampPlain[0], 10))
|
|
67
|
+
.minute(parseInt(timestampPlain[1], 10))
|
|
68
|
+
.second(parseInt(timestampPlain[2], 10))
|
|
69
|
+
.millisecond(0);
|
|
70
|
+
// midnight checking
|
|
71
|
+
isOverMidnight = this.checkMidnight(now, positionTimestamp); // returns -1, 1 or 0
|
|
72
|
+
positionTimestamp.add(isOverMidnight, "d");
|
|
73
|
+
return {
|
|
74
|
+
startTimestamp,
|
|
75
|
+
positionTimestamp,
|
|
76
|
+
};
|
|
77
|
+
});
|
|
44
78
|
this.transformElement = (element) => __awaiter(this, void 0, void 0, function* () {
|
|
45
79
|
const attributes = element.$;
|
|
46
80
|
// Trips of DPP to be excluded in HTTP ingress
|
|
@@ -89,7 +123,7 @@ class VehiclePositionsTransformation extends transformations_1.BaseTransformatio
|
|
|
89
123
|
const speed = agencyDPPRAHAException ? null : attributes.rychl;
|
|
90
124
|
const aswLastStopId = agencyDPPRAHAException ? attributes.asw : null;
|
|
91
125
|
const cisLastStopId = agencyDPPRAHAException ? null : attributes.zast;
|
|
92
|
-
|
|
126
|
+
const res = {
|
|
93
127
|
position: {
|
|
94
128
|
asw_last_stop_id: aswLastStopId ? this.formatASWStopId(aswLastStopId) : null,
|
|
95
129
|
bearing: bearing ? this.fixSourceNegativeBearing(parseInt(bearing, 10)) : null,
|
|
@@ -129,12 +163,11 @@ class VehiclePositionsTransformation extends transformations_1.BaseTransformatio
|
|
|
129
163
|
wheelchair_accessible: attributes.np === "true",
|
|
130
164
|
},
|
|
131
165
|
};
|
|
132
|
-
|
|
133
|
-
const stop = stops[i];
|
|
134
|
-
const now = moment_timezone_1.default.tz("Europe/Prague");
|
|
166
|
+
stops.forEach((stop, i) => {
|
|
135
167
|
let arrival;
|
|
136
168
|
let departure;
|
|
137
169
|
let isOverMidnight = 0;
|
|
170
|
+
const now = moment_timezone_1.default.tz("Europe/Prague");
|
|
138
171
|
// creating arival from stop.$.prij
|
|
139
172
|
if (stop.$.prij && stop.$.prij !== "") {
|
|
140
173
|
arrival = moment_timezone_1.default.tz("Europe/Prague");
|
|
@@ -173,7 +206,9 @@ class VehiclePositionsTransformation extends transformations_1.BaseTransformatio
|
|
|
173
206
|
const cisStopId = !agencyDPPRAHAException ? parseInt(stop.$.zast, 10) : null;
|
|
174
207
|
res.stops.push({
|
|
175
208
|
arrival_delay_type: stop.$.zpoz_typ_prij ? parseInt(stop.$.zpoz_typ_prij, 10) : null,
|
|
209
|
+
// @ts-ignore
|
|
176
210
|
arrival_time: arrival ? stop.$.prij : null,
|
|
211
|
+
// @ts-ignore
|
|
177
212
|
arrival_timestamp: arrival ? arrival.utc().valueOf() : null,
|
|
178
213
|
asw_stop_id: aswStopId,
|
|
179
214
|
cis_stop_id: cisStopId,
|
|
@@ -182,47 +217,15 @@ class VehiclePositionsTransformation extends transformations_1.BaseTransformatio
|
|
|
182
217
|
delay_arrival: stop.$.zpoz_prij ? parseInt(stop.$.zpoz_prij, 10) : null,
|
|
183
218
|
delay_departure: stop.$.zpoz_odj ? parseInt(stop.$.zpoz_odj, 10) : null,
|
|
184
219
|
delay_type: delayDepartureType ? parseInt(delayDepartureType, 10) : null,
|
|
220
|
+
// @ts-ignore
|
|
185
221
|
departure_time: departure ? stop.$.odj : null,
|
|
222
|
+
// @ts-ignore
|
|
186
223
|
departure_timestamp: departure ? departure.utc().valueOf() : null,
|
|
187
224
|
trips_id: primaryKey,
|
|
188
225
|
});
|
|
189
|
-
}
|
|
226
|
+
});
|
|
190
227
|
return res;
|
|
191
228
|
});
|
|
192
|
-
/**
|
|
193
|
-
* Deduce UTC timestamp of start of trip and UTC timestamp of current position
|
|
194
|
-
*
|
|
195
|
-
* @param {any} firstStopXML - parsed object of first stop
|
|
196
|
-
* @param {string} positionTimestampXML - XML attribute of local timestamp of position (HH:mm:ss)
|
|
197
|
-
* @returns {{ startTimestamp: Moment; positionTimestamp: Moment }}
|
|
198
|
-
*/
|
|
199
|
-
this.deduceTimestamps = (firstStopXML, positionTimestampXML) => __awaiter(this, void 0, void 0, function* () {
|
|
200
|
-
const now = moment_timezone_1.default.tz("Europe/Prague");
|
|
201
|
-
let isOverMidnight = 0;
|
|
202
|
-
// creating startDate and timestamp from zast[0].prij and cpoz
|
|
203
|
-
const startTimestamp = now.clone();
|
|
204
|
-
let startDatePlain = firstStopXML.$.prij || firstStopXML.$.odj;
|
|
205
|
-
startDatePlain = startDatePlain.split(":");
|
|
206
|
-
// eslint-disable-next-line prettier/prettier
|
|
207
|
-
startTimestamp.hour(parseInt(startDatePlain[0], 10)).minute(parseInt(startDatePlain[1], 10)).second(0).millisecond(0);
|
|
208
|
-
// midnight checking
|
|
209
|
-
isOverMidnight = this.checkMidnight(now, startTimestamp); // returns -1, 1 or 0
|
|
210
|
-
startTimestamp.add(isOverMidnight, "d");
|
|
211
|
-
const positionTimestamp = now.clone();
|
|
212
|
-
const timestampPlain = positionTimestampXML.split(":");
|
|
213
|
-
positionTimestamp
|
|
214
|
-
.hour(parseInt(timestampPlain[0], 10))
|
|
215
|
-
.minute(parseInt(timestampPlain[1], 10))
|
|
216
|
-
.second(parseInt(timestampPlain[2], 10))
|
|
217
|
-
.millisecond(0);
|
|
218
|
-
// midnight checking
|
|
219
|
-
isOverMidnight = this.checkMidnight(now, positionTimestamp); // returns -1, 1 or 0
|
|
220
|
-
positionTimestamp.add(isOverMidnight, "d");
|
|
221
|
-
return {
|
|
222
|
-
startTimestamp,
|
|
223
|
-
positionTimestamp,
|
|
224
|
-
};
|
|
225
|
-
});
|
|
226
229
|
/**
|
|
227
230
|
* Returns -1 if start hour is 12-23 and now is 0-12, 1 if start hour is 18-23 and now 0-6, else 0
|
|
228
231
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VehiclePositionsTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/vehicle-positions/VehiclePositionsTransformation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Validator } from "@golemio/core/dist/shared/golemio-validator";
|
|
2
2
|
import Sequelize from "@golemio/core/dist/shared/sequelize";
|
|
3
3
|
import { IModel, PostgresModel } from "@golemio/core/dist/integration-engine/models";
|
|
4
|
-
import { IVehiclePositionsRunCommon } from "
|
|
4
|
+
import { IVehiclePositionsRunCommon } from "./VehiclePositionsRunsTransformation";
|
|
5
5
|
import { IGtfsRunTripCache } from "./VehiclePositionsRunsModel";
|
|
6
|
-
import { IPropagateDelay } from "
|
|
6
|
+
import { IPropagateDelay } from "./VehiclePositionsWorker";
|
|
7
7
|
export interface IGTFSRtFeedEntity {
|
|
8
8
|
last_position: {
|
|
9
9
|
is_canceled: boolean | null;
|
|
@@ -31,11 +31,8 @@ export interface IGTFSRtFeedEntity {
|
|
|
31
31
|
}
|
|
32
32
|
export interface IUpdateDelayTripsIdsData {
|
|
33
33
|
id: string;
|
|
34
|
-
gtfs_trip_id?: string;
|
|
35
34
|
gtfs_block_id?: string;
|
|
36
|
-
gtfs_route_type?: number;
|
|
37
35
|
start_timestamp: string;
|
|
38
|
-
end_timestamp?: string;
|
|
39
36
|
}
|
|
40
37
|
export interface IUpdateDelayRunTripsData extends IUpdateDelayTripsIdsData {
|
|
41
38
|
origin_route_name: string;
|
|
@@ -60,6 +57,11 @@ export interface IUpdateGTFSTripIdData {
|
|
|
60
57
|
vehicle_registration_number: string | null;
|
|
61
58
|
vehicle_type_id: number | null;
|
|
62
59
|
wheelchair_accessible: boolean | null;
|
|
60
|
+
gtfs_trip_id?: string;
|
|
61
|
+
gtfs_trip_headsign?: string;
|
|
62
|
+
gtfs_route_id?: string;
|
|
63
|
+
gtfs_route_short_name?: string;
|
|
64
|
+
gtfs_block_id?: string;
|
|
63
65
|
}
|
|
64
66
|
export interface IFoundGTFSTripData {
|
|
65
67
|
id?: string;
|
|
@@ -39,10 +39,10 @@ const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/mom
|
|
|
39
39
|
const connectors_1 = require("@golemio/core/dist/integration-engine/connectors");
|
|
40
40
|
const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
|
|
41
41
|
const models_1 = require("@golemio/core/dist/integration-engine/models");
|
|
42
|
-
const vehicle_positions_1 = require("
|
|
43
|
-
const const_1 = require("
|
|
42
|
+
const vehicle_positions_1 = require("../../schema-definitions/vehicle-positions");
|
|
43
|
+
const const_1 = require("../../const");
|
|
44
44
|
const VehiclePositionsPositionsModel_1 = require("./VehiclePositionsPositionsModel");
|
|
45
|
-
const ropid_gtfs_1 = require("
|
|
45
|
+
const ropid_gtfs_1 = require("../ropid-gtfs");
|
|
46
46
|
var GTFSRouteTypeEnum;
|
|
47
47
|
(function (GTFSRouteTypeEnum) {
|
|
48
48
|
GTFSRouteTypeEnum[GTFSRouteTypeEnum["TRAM"] = 0] = "TRAM";
|
|
@@ -255,18 +255,14 @@ class VehiclePositionsTripsModel extends models_1.PostgresModel {
|
|
|
255
255
|
this.findAllAssocTripIds = (tripIds) => __awaiter(this, void 0, void 0, function* () {
|
|
256
256
|
const connection = connectors_1.PostgresConnector.getConnection();
|
|
257
257
|
return Array.isArray(tripIds) && tripIds.length > 0
|
|
258
|
-
? (yield connection.query(`select id, gtfs_block_id,
|
|
259
|
-
id like any (array[${tripIds.map((id) => `'${id}%'`).join(",")}])`, { type: sequelize_1.default.QueryTypes.SELECT })).map((res) => ({
|
|
260
|
-
id: res.id,
|
|
261
|
-
gtfs_trip_id: res.gtfs_trip_id,
|
|
262
|
-
gtfs_block_id: res.gtfs_block_id,
|
|
263
|
-
start_timestamp: res.start_timestamp,
|
|
264
|
-
}))
|
|
258
|
+
? (yield connection.query(`select id, gtfs_block_id, start_timestamp from "${vehicle_positions_1.VehiclePositions.pgSchema}".${this.tableName} where
|
|
259
|
+
id like any (array[${tripIds.map((id) => `'${id}%'`).join(",")}])`, { type: sequelize_1.default.QueryTypes.SELECT })).map((res) => ({ id: res.id, gtfs_block_id: res.gtfs_block_id, start_timestamp: res.start_timestamp }))
|
|
265
260
|
: [];
|
|
266
261
|
});
|
|
267
262
|
this.findGTFSTripId = (trip) => __awaiter(this, void 0, void 0, function* () {
|
|
268
263
|
let foundGtfsTrips = [];
|
|
269
|
-
|
|
264
|
+
// @ts-ignore
|
|
265
|
+
if (trip.start_cis_stop_id >= 5400000 && trip.start_cis_stop_id < 5500000) {
|
|
270
266
|
// trains
|
|
271
267
|
// array of founded gtfs trips, 0 or 1 or more with same block_id
|
|
272
268
|
foundGtfsTrips = yield this.findGTFSTripIdsTrain(trip);
|
|
@@ -275,44 +271,30 @@ class VehiclePositionsTripsModel extends models_1.PostgresModel {
|
|
|
275
271
|
// other
|
|
276
272
|
foundGtfsTrips = yield this.findGTFSTripIdBasic(trip);
|
|
277
273
|
}
|
|
278
|
-
if (foundGtfsTrips.length
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
id: trip.id,
|
|
289
|
-
},
|
|
290
|
-
});
|
|
291
|
-
const newIds = [
|
|
292
|
-
{
|
|
293
|
-
id: trip.id,
|
|
294
|
-
gtfs_trip_id: firstFoundGtfsTrip.gtfs_trip_id,
|
|
295
|
-
gtfs_block_id: firstFoundGtfsTrip.gtfs_block_id,
|
|
296
|
-
gtfs_route_type: firstFoundGtfsTrip.gtfs_route_type,
|
|
297
|
-
start_timestamp: startTimestamp.toString(),
|
|
298
|
-
},
|
|
299
|
-
];
|
|
300
|
-
// for other trips insert new rows with suffixed id
|
|
301
|
-
for (const foundTrip of foundGtfsTrips) {
|
|
302
|
-
const newId = `${trip.id}_gtfs_trip_id_${foundTrip.gtfs_trip_id}`;
|
|
303
|
-
foundTrip.id = newId;
|
|
304
|
-
const { startTimestamp, endTimestamp } = this.deduceTimestamps(foundTrip.min_stop_time, foundTrip.max_stop_time, +trip.start_timestamp);
|
|
305
|
-
yield this.save(Object.assign(Object.assign(Object.assign({}, trip), foundTrip), { start_timestamp: startTimestamp, end_timestamp: endTimestamp }));
|
|
306
|
-
newIds.push({
|
|
307
|
-
id: newId,
|
|
308
|
-
gtfs_trip_id: foundTrip.gtfs_trip_id,
|
|
309
|
-
gtfs_block_id: foundTrip.gtfs_block_id,
|
|
310
|
-
gtfs_route_type: foundTrip.gtfs_route_type,
|
|
311
|
-
start_timestamp: startTimestamp.toString(),
|
|
312
|
-
end_timestamp: endTimestamp.toString(),
|
|
274
|
+
if (foundGtfsTrips && foundGtfsTrips.length) {
|
|
275
|
+
// sort ascending by gtfs_trip_id
|
|
276
|
+
foundGtfsTrips = foundGtfsTrips.sort((a, b) => (a.gtfs_trip_id < b.gtfs_trip_id ? -1 : 1));
|
|
277
|
+
// update existing trip with gtfs_trip_id, gtfs_block_id and other gtfs data
|
|
278
|
+
const firstFoundGtfsTrip = foundGtfsTrips.pop();
|
|
279
|
+
const { startTimestamp, endTimestamp } = this.deduceTimestamps(firstFoundGtfsTrip.min_stop_time, firstFoundGtfsTrip.max_stop_time, +trip.start_timestamp);
|
|
280
|
+
yield this.update(Object.assign(Object.assign({}, firstFoundGtfsTrip), { start_timestamp: startTimestamp, end_timestamp: endTimestamp }), {
|
|
281
|
+
where: {
|
|
282
|
+
id: trip.id,
|
|
283
|
+
},
|
|
313
284
|
});
|
|
285
|
+
const newIds = [
|
|
286
|
+
{ id: trip.id, gtfs_block_id: trip.gtfs_block_id, start_timestamp: startTimestamp.toString() },
|
|
287
|
+
];
|
|
288
|
+
// for other trips insert new rows with suffixed id
|
|
289
|
+
for (const foundTrip of foundGtfsTrips) {
|
|
290
|
+
const newId = `${trip.id}_gtfs_trip_id_${foundTrip.gtfs_trip_id}`;
|
|
291
|
+
foundTrip.id = newId;
|
|
292
|
+
const { startTimestamp, endTimestamp } = this.deduceTimestamps(foundTrip.min_stop_time, foundTrip.max_stop_time, +trip.start_timestamp);
|
|
293
|
+
yield this.save(Object.assign(Object.assign(Object.assign({}, trip), foundTrip), { start_timestamp: startTimestamp, end_timestamp: endTimestamp }));
|
|
294
|
+
newIds.push({ id: newId, gtfs_block_id: trip.gtfs_block_id, start_timestamp: startTimestamp.toString() });
|
|
295
|
+
}
|
|
296
|
+
return newIds;
|
|
314
297
|
}
|
|
315
|
-
return newIds;
|
|
316
298
|
});
|
|
317
299
|
this.deleteNHoursOldData = (hours) => __awaiter(this, void 0, void 0, function* () {
|
|
318
300
|
try {
|
|
@@ -558,7 +540,7 @@ class VehiclePositionsTripsModel extends models_1.PostgresModel {
|
|
|
558
540
|
},
|
|
559
541
|
}));
|
|
560
542
|
if (!result[0]) {
|
|
561
|
-
|
|
543
|
+
throw new golemio_errors_1.CustomError(`Model data was not found for id '${trip.id}' (basic).`, true, this.constructor.name, 5001);
|
|
562
544
|
}
|
|
563
545
|
else if (result.length > 1) {
|
|
564
546
|
throw new golemio_errors_1.CustomError(`There are too many gtfs trips (${result.length}) linked with id '${trip.id}' (trip).`, true, this.constructor.name, 4005);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VehiclePositionsTripsModel.js","sourceRoot":"","sources":["../../../src/integration-engine/vehicle-positions/VehiclePositionsTripsModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,86 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { BaseWorker } from "@golemio/core/dist/integration-engine/workers";
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
3
|
+
import { IStopTime } from "../ropid-gtfs/RopidGTFSTripsModel";
|
|
4
|
+
import { GTFSRouteTypeEnum } from "./";
|
|
5
|
+
import { IVehiclePositionsRunCommon } from "./VehiclePositionsRunsTransformation";
|
|
6
|
+
import { Feature, Point } from "@turf/turf";
|
|
7
|
+
import { ITripPositionAttributes } from "./VehiclePositionsPositionsModel";
|
|
8
|
+
interface IComputedPositionAtStopStreak {
|
|
9
|
+
firstPositionTimestamp: number | null;
|
|
10
|
+
firstPositionDelay: number | null;
|
|
11
|
+
stop_sequence: number | null;
|
|
12
|
+
}
|
|
13
|
+
export interface IPositionsContext {
|
|
14
|
+
lastPositionId: string | null;
|
|
15
|
+
lastPositionOriginTimestamp: number | null;
|
|
16
|
+
lastPositionTracking: Feature<Point, ITripPositionAttributes> | null;
|
|
17
|
+
lastPositionCanceled: boolean | null;
|
|
18
|
+
lastPositionLastStop: {
|
|
19
|
+
id: string | null;
|
|
20
|
+
sequence: number | null;
|
|
21
|
+
arrival_time: number | null;
|
|
22
|
+
departure_time: number | null;
|
|
23
|
+
};
|
|
24
|
+
lastPositionDelay: number | null;
|
|
25
|
+
atStopStreak: IComputedPositionAtStopStreak;
|
|
26
|
+
lastPositionBeforeTrackDelayed: {
|
|
27
|
+
delay: number;
|
|
28
|
+
origin_timestamp: number;
|
|
29
|
+
} | null;
|
|
30
|
+
isLastPositionAfterTrack: boolean;
|
|
31
|
+
tripId: string;
|
|
32
|
+
}
|
|
33
|
+
export interface IShapeAnchorPoint {
|
|
34
|
+
index: number;
|
|
35
|
+
at_stop: boolean;
|
|
36
|
+
bearing: number;
|
|
37
|
+
coordinates: [number, number];
|
|
38
|
+
distance_from_last_stop: number;
|
|
39
|
+
last_stop_sequence: number;
|
|
40
|
+
next_stop_sequence: number;
|
|
41
|
+
shape_dist_traveled: number;
|
|
42
|
+
this_stop_sequence: number | null;
|
|
43
|
+
time_scheduled_seconds: number;
|
|
44
|
+
}
|
|
45
|
+
interface IComputationTrip {
|
|
46
|
+
trip_id: string;
|
|
47
|
+
stop_times: IStopTime[];
|
|
48
|
+
shapes_anchor_points: IShapeAnchorPoint[];
|
|
49
|
+
}
|
|
50
|
+
interface ITripPositionsWithOrWithoutGTFS {
|
|
51
|
+
gtfsData: IComputationTrip | null;
|
|
52
|
+
id: string;
|
|
53
|
+
gtfs_trip_id: string;
|
|
54
|
+
gtfs_route_type: GTFSRouteTypeEnum;
|
|
55
|
+
start_timestamp: string;
|
|
56
|
+
agency_name_scheduled: string;
|
|
57
|
+
start_cis_stop_id: number;
|
|
58
|
+
positions: ITripPositionAttributes[];
|
|
59
|
+
}
|
|
60
|
+
export interface ITripPositionsWithGTFS extends ITripPositionsWithOrWithoutGTFS {
|
|
61
|
+
gtfsData: IComputationTrip;
|
|
62
|
+
}
|
|
63
|
+
export interface ICurrentPositionProperties {
|
|
64
|
+
id: string;
|
|
65
|
+
origin_time: string;
|
|
66
|
+
origin_timestamp: number;
|
|
67
|
+
tcp_event: string | null;
|
|
68
|
+
}
|
|
69
|
+
export interface ILastPositionProperties {
|
|
70
|
+
time_delay: number;
|
|
71
|
+
atStopStreak: IComputedPositionAtStopStreak;
|
|
72
|
+
}
|
|
73
|
+
export interface IPropagateDelay {
|
|
74
|
+
nextGtfsTrips: string[];
|
|
75
|
+
currentOriginTimestamp: number;
|
|
76
|
+
currentGtfsTripId: string;
|
|
77
|
+
currentRegistrationNumber: number;
|
|
78
|
+
currentDelay: number;
|
|
79
|
+
currentStartTime: string;
|
|
80
|
+
currentEndTime: string;
|
|
81
|
+
}
|
|
5
82
|
export declare class VehiclePositionsWorker extends BaseWorker {
|
|
6
83
|
private modelGTFSTrips;
|
|
7
|
-
private modelGTFSStopTimes;
|
|
8
84
|
private modelPositions;
|
|
9
85
|
private modelRuns;
|
|
10
86
|
private modelStops;
|
|
@@ -14,36 +90,26 @@ export declare class VehiclePositionsWorker extends BaseWorker {
|
|
|
14
90
|
private delayComputationTripsModel;
|
|
15
91
|
private runTripsModel;
|
|
16
92
|
private gtfsRtModel;
|
|
17
|
-
private tripStopsModel;
|
|
18
93
|
private upsertTripsFQ;
|
|
19
94
|
private readonly queuePrefix;
|
|
95
|
+
private modelGTFSStopTimes;
|
|
20
96
|
constructor();
|
|
21
|
-
saveDataToDB: (msg:
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
content: Buffer;
|
|
26
|
-
}) => Promise<void>;
|
|
27
|
-
updateGTFSTripId: (msg: {
|
|
28
|
-
content: Buffer;
|
|
29
|
-
}) => Promise<void>;
|
|
30
|
-
generateGtfsRt: () => Promise<void>;
|
|
97
|
+
saveDataToDB: (msg: any) => Promise<void>;
|
|
98
|
+
saveStopsToDB: (msg: any) => Promise<void>;
|
|
99
|
+
updateGTFSTripId: (msg: any) => Promise<void>;
|
|
100
|
+
generateGtfsRt: (msg: any) => Promise<void>;
|
|
31
101
|
private isUpdateDelayRunTripsIdsData;
|
|
32
102
|
private mapDelayedPositionsToRunTrips;
|
|
33
103
|
propagateDelayForGtfsTrip: (data: IPropagateDelay) => Promise<void>;
|
|
34
|
-
propagateDelay: (msg:
|
|
35
|
-
|
|
36
|
-
}) => Promise<void>;
|
|
37
|
-
updateDelay: (msg: {
|
|
38
|
-
content: Buffer;
|
|
39
|
-
}) => Promise<void>;
|
|
104
|
+
propagateDelay: (msg: any) => Promise<void>;
|
|
105
|
+
updateDelay: (msg: any) => Promise<void>;
|
|
40
106
|
/**
|
|
41
107
|
* Queue listener method - triggers processing of TCP input gateway runs data
|
|
42
108
|
*
|
|
43
109
|
* @param {object} msg - xml->json parsed run message
|
|
44
110
|
* @returns {void}
|
|
45
111
|
*/
|
|
46
|
-
saveRunsToDB: (msg:
|
|
112
|
+
saveRunsToDB: (msg: any) => Promise<void>;
|
|
47
113
|
/**
|
|
48
114
|
* Process not public trips from runs data
|
|
49
115
|
*
|
|
@@ -57,9 +123,7 @@ export declare class VehiclePositionsWorker extends BaseWorker {
|
|
|
57
123
|
* @param {object} msg
|
|
58
124
|
* @returns {void}
|
|
59
125
|
*/
|
|
60
|
-
updateRunsGTFSTripId: (msg:
|
|
61
|
-
content: Buffer;
|
|
62
|
-
}) => Promise<void>;
|
|
126
|
+
updateRunsGTFSTripId: (msg: any) => Promise<void>;
|
|
63
127
|
/**
|
|
64
128
|
* Queue listener method - delete old data
|
|
65
129
|
*/
|
|
@@ -71,14 +135,7 @@ export declare class VehiclePositionsWorker extends BaseWorker {
|
|
|
71
135
|
*
|
|
72
136
|
* @returns {string[]} array of tripIds
|
|
73
137
|
*/
|
|
74
|
-
private
|
|
75
|
-
/**
|
|
76
|
-
* Get trip stops schedule by block id
|
|
77
|
-
*
|
|
78
|
-
* @param {string} blockId - Target gtfs block id
|
|
79
|
-
* @param {string} tripIds - List of inserted gtfs trip ids
|
|
80
|
-
*/
|
|
81
|
-
private setAndReturnTripStopsSchedule;
|
|
138
|
+
private getScheduledTrips;
|
|
82
139
|
/**
|
|
83
140
|
* Takes all newly computed positions and saves it, then save the last ones to the trips
|
|
84
141
|
*
|
|
@@ -191,18 +248,8 @@ export declare class VehiclePositionsWorker extends BaseWorker {
|
|
|
191
248
|
*
|
|
192
249
|
* @param {string} shapeId - GTFS shape id
|
|
193
250
|
* @param {ITransformedTripShape[]} shapes - GTFS shape points
|
|
194
|
-
* @param {IStopTime[]} stops
|
|
195
251
|
* @returns {IShapeGeometryAnchorPoint[]} - Result array of geometry points along trip track shape
|
|
196
252
|
*/
|
|
197
253
|
private getShapesGeometryAnchorPoints;
|
|
198
|
-
/**
|
|
199
|
-
* Generates new shape points from segment of trip shape along original one
|
|
200
|
-
* - preserving start and end shape points belonging to stops
|
|
201
|
-
* - creates new set of shape points between stops to get same point distance along original shape
|
|
202
|
-
*
|
|
203
|
-
* @param {ISegmentShape[]} segmentsArr - Original shape points segment between two stops
|
|
204
|
-
* @param {number} distance - Minimal distance for two consequent shape points
|
|
205
|
-
* @returns {ISegmentShape[]} - Result array of new shape points
|
|
206
|
-
*/
|
|
207
|
-
private divideSegmentLine;
|
|
208
254
|
}
|
|
255
|
+
export {};
|