@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.
Files changed (75) hide show
  1. package/db/example/{00_truncate_tables.sql → __truncate_tables.sql} +0 -0
  2. package/db/example/{01_departure_directions.sql → departure_directions.sql} +0 -0
  3. package/db/example/{02_pid_line_example_115.sql → pid_line_example_115.sql} +0 -0
  4. package/db/example/{03_ropidgtfs_dump.sql → ropid_gtfs_dump.sql} +27 -27
  5. package/db/example/{04_ropidvymi_example.sql → ropidvymi_example.sql} +0 -0
  6. package/db/example/{07_tmp_example.sql → tmp_example.sql} +0 -0
  7. package/db/example/{pb/trip_updates.pb → trip_updates.pb} +0 -0
  8. package/db/example/{pb/vehicle_positions.pb → vehicle_positions.pb} +0 -0
  9. package/db/example/{05_vehicle_positions_dump.sql → vehicle_positions_dump.sql} +0 -0
  10. package/db/example/{99_precomputed_tables.sql → zzz_precomputed_tables.sql} +0 -0
  11. package/dist/const.d.ts +0 -4
  12. package/dist/const.js +1 -6
  13. package/dist/const.js.map +1 -1
  14. package/dist/integration-engine/ropid-gtfs/RopidGTFSScheduledTripsModel.d.ts +1 -1
  15. package/dist/integration-engine/ropid-gtfs/RopidGTFSStopTimesModel.d.ts +0 -11
  16. package/dist/integration-engine/ropid-gtfs/RopidGTFSStopTimesModel.js +0 -34
  17. package/dist/integration-engine/ropid-gtfs/RopidGTFSStopTimesModel.js.map +1 -1
  18. package/dist/integration-engine/ropid-gtfs/RopidGTFSTripsModel.js +1 -2
  19. package/dist/integration-engine/ropid-gtfs/RopidGTFSTripsModel.js.map +1 -1
  20. package/dist/integration-engine/ropid-gtfs/RopidGTFSWorker.js +2 -2
  21. package/dist/integration-engine/ropid-gtfs/RopidGTFSWorker.js.map +1 -1
  22. package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsPositionsModel.d.ts → VehiclePositionsPositionsModel.d.ts} +3 -3
  23. package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsPositionsModel.js → VehiclePositionsPositionsModel.js} +3 -3
  24. package/dist/integration-engine/vehicle-positions/VehiclePositionsPositionsModel.js.map +1 -0
  25. package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsRunsMessagesModel.d.ts → VehiclePositionsRunsMessagesModel.d.ts} +0 -0
  26. package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsRunsMessagesModel.js → VehiclePositionsRunsMessagesModel.js} +5 -5
  27. package/dist/integration-engine/vehicle-positions/VehiclePositionsRunsMessagesModel.js.map +1 -0
  28. package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsRunsModel.d.ts → VehiclePositionsRunsModel.d.ts} +2 -2
  29. package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsRunsModel.js → VehiclePositionsRunsModel.js} +2 -2
  30. package/dist/integration-engine/vehicle-positions/VehiclePositionsRunsModel.js.map +1 -0
  31. package/dist/integration-engine/vehicle-positions/{transformations/VehiclePositionsRunsTransformation.d.ts → VehiclePositionsRunsTransformation.d.ts} +1 -1
  32. package/dist/integration-engine/vehicle-positions/{transformations/VehiclePositionsRunsTransformation.js → VehiclePositionsRunsTransformation.js} +1 -1
  33. package/dist/integration-engine/vehicle-positions/VehiclePositionsRunsTransformation.js.map +1 -0
  34. package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsStopsModel.d.ts → VehiclePositionsStopsModel.d.ts} +0 -0
  35. package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsStopsModel.js → VehiclePositionsStopsModel.js} +1 -1
  36. package/dist/integration-engine/vehicle-positions/VehiclePositionsStopsModel.js.map +1 -0
  37. package/dist/integration-engine/vehicle-positions/VehiclePositionsTransformation.d.ts +49 -0
  38. package/dist/integration-engine/vehicle-positions/{transformations/VehiclePositionsTransformation.js → VehiclePositionsTransformation.js} +45 -42
  39. package/dist/integration-engine/vehicle-positions/VehiclePositionsTransformation.js.map +1 -0
  40. package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsTripsModel.d.ts → VehiclePositionsTripsModel.d.ts} +7 -5
  41. package/dist/integration-engine/vehicle-positions/{models/VehiclePositionsTripsModel.js → VehiclePositionsTripsModel.js} +30 -48
  42. package/dist/integration-engine/vehicle-positions/VehiclePositionsTripsModel.js.map +1 -0
  43. package/dist/integration-engine/vehicle-positions/VehiclePositionsWorker.d.ts +90 -43
  44. package/dist/integration-engine/vehicle-positions/VehiclePositionsWorker.js +213 -327
  45. package/dist/integration-engine/vehicle-positions/VehiclePositionsWorker.js.map +1 -1
  46. package/dist/integration-engine/vehicle-positions/index.d.ts +5 -2
  47. package/dist/integration-engine/vehicle-positions/index.js +5 -2
  48. package/dist/integration-engine/vehicle-positions/index.js.map +1 -1
  49. package/dist/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.js +1 -1
  50. package/dist/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.js.map +1 -1
  51. package/dist/schema-definitions/vehicle-positions/index.d.ts +2 -9
  52. package/dist/schema-definitions/vehicle-positions/index.js +2 -18
  53. package/dist/schema-definitions/vehicle-positions/index.js.map +1 -1
  54. package/package.json +82 -83
  55. package/db/example/06_ropidgtfs_train_trips_stop_times.sql +0 -83
  56. package/dist/integration-engine/vehicle-positions/VehiclePositionsInterfaces.d.ts +0 -152
  57. package/dist/integration-engine/vehicle-positions/VehiclePositionsInterfaces.js +0 -3
  58. package/dist/integration-engine/vehicle-positions/VehiclePositionsInterfaces.js.map +0 -1
  59. package/dist/integration-engine/vehicle-positions/VehiclePositionsUtils.d.ts +0 -22
  60. package/dist/integration-engine/vehicle-positions/VehiclePositionsUtils.js +0 -53
  61. package/dist/integration-engine/vehicle-positions/VehiclePositionsUtils.js.map +0 -1
  62. package/dist/integration-engine/vehicle-positions/models/VehiclePositionsPositionsModel.js.map +0 -1
  63. package/dist/integration-engine/vehicle-positions/models/VehiclePositionsRunsMessagesModel.js.map +0 -1
  64. package/dist/integration-engine/vehicle-positions/models/VehiclePositionsRunsModel.js.map +0 -1
  65. package/dist/integration-engine/vehicle-positions/models/VehiclePositionsStopsModel.js.map +0 -1
  66. package/dist/integration-engine/vehicle-positions/models/VehiclePositionsTripsModel.js.map +0 -1
  67. package/dist/integration-engine/vehicle-positions/models/index.d.ts +0 -5
  68. package/dist/integration-engine/vehicle-positions/models/index.js +0 -18
  69. package/dist/integration-engine/vehicle-positions/models/index.js.map +0 -1
  70. package/dist/integration-engine/vehicle-positions/transformations/VehiclePositionsRunsTransformation.js.map +0 -1
  71. package/dist/integration-engine/vehicle-positions/transformations/VehiclePositionsTransformation.d.ts +0 -108
  72. package/dist/integration-engine/vehicle-positions/transformations/VehiclePositionsTransformation.js.map +0 -1
  73. package/dist/integration-engine/vehicle-positions/transformations/index.d.ts +0 -2
  74. package/dist/integration-engine/vehicle-positions/transformations/index.js +0 -15
  75. 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("../../../schema-definitions/vehicle-positions");
19
- const const_1 = require("../../../const");
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
- let res = {
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
- let res = {
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
- for (let i = 0; i < stops.length; i++) {
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 "../transformations";
4
+ import { IVehiclePositionsRunCommon } from "./VehiclePositionsRunsTransformation";
5
5
  import { IGtfsRunTripCache } from "./VehiclePositionsRunsModel";
6
- import { IPropagateDelay } from "../VehiclePositionsInterfaces";
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("../../../schema-definitions/vehicle-positions");
43
- const const_1 = require("../../../const");
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("../../ropid-gtfs");
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, gtfs_trip_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) => ({
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
- if (Number(trip.start_cis_stop_id) >= 5400000 && Number(trip.start_cis_stop_id) < 5500000) {
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 < 1) {
279
- return;
280
- }
281
- // sort ascending by gtfs_trip_id
282
- foundGtfsTrips = foundGtfsTrips.sort((a, b) => (a.gtfs_trip_id < b.gtfs_trip_id ? -1 : 1));
283
- // update existing trip with gtfs_trip_id, gtfs_block_id and other gtfs data
284
- const firstFoundGtfsTrip = foundGtfsTrips.pop();
285
- const { startTimestamp, endTimestamp } = this.deduceTimestamps(firstFoundGtfsTrip.min_stop_time, firstFoundGtfsTrip.max_stop_time, +trip.start_timestamp);
286
- yield this.update(Object.assign(Object.assign({}, firstFoundGtfsTrip), { start_timestamp: startTimestamp, end_timestamp: endTimestamp }), {
287
- where: {
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
- helpers_1.log.warn(`${this.constructor.name}: Model data was not found for id '${trip.id}' (basic).`);
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 { IVehiclePositionsRunCommon } from "./transformations";
4
- import type { IPropagateDelay } from "./VehiclePositionsInterfaces";
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
- content: Buffer;
23
- }) => Promise<void>;
24
- saveStopsToDB: (msg: {
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
- content: Buffer;
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: Record<string, any>) => Promise<void>;
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 setAndReturnScheduledTrips;
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 {};