@golemio/pid 2.2.2-dev.537222363 → 2.2.2-dev.538444195
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/20220511111111-departures-indexes.js +50 -0
- package/db/migrations/postgresql/sqls/20220511111111-departures-indexes-down.sql +3 -0
- package/db/migrations/postgresql/sqls/20220511111111-departures-indexes-up.sql +3 -0
- package/dist/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.d.ts +2 -2
- package/dist/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.js +24 -26
- package/dist/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var dbm;
|
|
4
|
+
var type;
|
|
5
|
+
var seed;
|
|
6
|
+
var fs = require("fs");
|
|
7
|
+
var path = require("path");
|
|
8
|
+
var Promise;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* We receive the dbmigrate dependency from dbmigrate initially.
|
|
12
|
+
* This enables us to not have to rely on NODE_PATH.
|
|
13
|
+
*/
|
|
14
|
+
exports.setup = function (options, seedLink) {
|
|
15
|
+
dbm = options.dbmigrate;
|
|
16
|
+
type = dbm.dataType;
|
|
17
|
+
seed = seedLink;
|
|
18
|
+
Promise = options.Promise;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
exports.up = function (db) {
|
|
22
|
+
var filePath = path.join(__dirname, "sqls", "20220511111111-departures-indexes-up.sql");
|
|
23
|
+
return new Promise(function (resolve, reject) {
|
|
24
|
+
fs.readFile(filePath, { encoding: "utf-8" }, function (err, data) {
|
|
25
|
+
if (err) return reject(err);
|
|
26
|
+
console.log("received data: " + data);
|
|
27
|
+
resolve(data);
|
|
28
|
+
});
|
|
29
|
+
}).then(function (data) {
|
|
30
|
+
return db.runSql(data);
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
exports.down = function (db) {
|
|
35
|
+
var filePath = path.join(__dirname, "sqls", "20220511111111-departures-indexes-down.sql");
|
|
36
|
+
return new Promise(function (resolve, reject) {
|
|
37
|
+
fs.readFile(filePath, { encoding: "utf-8" }, function (err, data) {
|
|
38
|
+
if (err) return reject(err);
|
|
39
|
+
console.log("received data: " + data);
|
|
40
|
+
|
|
41
|
+
resolve(data);
|
|
42
|
+
});
|
|
43
|
+
}).then(function (data) {
|
|
44
|
+
return db.runSql(data);
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
exports._meta = {
|
|
49
|
+
version: 1,
|
|
50
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
CREATE INDEX IF NOT EXISTS vehiclepositions_positions_valid_to ON vehiclepositions_positions USING btree (valid_to);
|
|
2
|
+
CREATE INDEX IF NOT EXISTS vehiclepositions_trips_gtfs_trip_id ON vehiclepositions_trips USING btree (gtfs_trip_id);
|
|
3
|
+
CREATE INDEX IF NOT EXISTS ropidgtfs_departures_actual_stop_id ON ropidgtfs_departures_actual USING btree (stop_id);
|
|
@@ -57,9 +57,9 @@ export declare class VehiclePositionsTripsModel extends SequelizeModel {
|
|
|
57
57
|
*/
|
|
58
58
|
private ComposeIncludes;
|
|
59
59
|
/** Creates Projection Alias for epoch in milliseconds column converted to ISO String in defined timezone
|
|
60
|
-
* @param {string}
|
|
60
|
+
* @param {string} name Column name
|
|
61
61
|
* @param {string} preferredTimezone Preferred timezone code
|
|
62
|
-
* @returns Projection Alias
|
|
62
|
+
* @returns Projection Alias with _isostring suffix
|
|
63
63
|
*/
|
|
64
64
|
private convertEpochMsColumnToISOString;
|
|
65
65
|
}
|
|
@@ -84,11 +84,9 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
84
84
|
this.GetAll = (options) => __awaiter(this, void 0, void 0, function* () {
|
|
85
85
|
try {
|
|
86
86
|
const { limit, offset, updatedSince } = options;
|
|
87
|
-
const
|
|
88
|
-
// updatedSince cannot be
|
|
89
|
-
const maxUpdatedAt = updatedSince && (0, moment_timezone_1.default)(updatedSince).isSameOrAfter(
|
|
90
|
-
? updatedSince.toISOString()
|
|
91
|
-
: (0, moment_timezone_1.default)().toISOString();
|
|
87
|
+
const minUpdatedAt = (0, moment_timezone_1.default)().subtract(10, "minutes");
|
|
88
|
+
// updatedSince cannot be more than 10 minutes ago
|
|
89
|
+
const maxUpdatedAt = updatedSince && (0, moment_timezone_1.default)(updatedSince).isSameOrAfter(minUpdatedAt) ? updatedSince.toISOString() : null;
|
|
92
90
|
const include = this.ComposeIncludes(options);
|
|
93
91
|
const rows = yield this.sequelizeModel.findAll({
|
|
94
92
|
attributes: {
|
|
@@ -125,12 +123,12 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
125
123
|
return {
|
|
126
124
|
data: (0, Geo_1.buildGeojsonFeatureCollection)([]),
|
|
127
125
|
metadata: {
|
|
128
|
-
max_updated_at: maxUpdatedAt,
|
|
126
|
+
max_updated_at: maxUpdatedAt || (0, moment_timezone_1.default)().toISOString(),
|
|
129
127
|
},
|
|
130
128
|
};
|
|
131
129
|
}
|
|
132
130
|
let returnData = [];
|
|
133
|
-
let maxUpdatedAtData =
|
|
131
|
+
let maxUpdatedAtData = null;
|
|
134
132
|
for (const row of rows) {
|
|
135
133
|
returnData.push(this.ConvertItem(row));
|
|
136
134
|
if (row.updated_at > maxUpdatedAtData) {
|
|
@@ -140,7 +138,7 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
140
138
|
return {
|
|
141
139
|
data: (0, Geo_1.buildGeojsonFeatureCollection)(returnData),
|
|
142
140
|
metadata: {
|
|
143
|
-
max_updated_at: maxUpdatedAtData,
|
|
141
|
+
max_updated_at: maxUpdatedAtData || (0, moment_timezone_1.default)().toISOString(),
|
|
144
142
|
},
|
|
145
143
|
};
|
|
146
144
|
}
|
|
@@ -196,18 +194,18 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
196
194
|
},
|
|
197
195
|
is_canceled: last_position.is_canceled,
|
|
198
196
|
last_stop: {
|
|
199
|
-
arrival_time: last_position.
|
|
200
|
-
departure_time: last_position.
|
|
197
|
+
arrival_time: last_position.last_stop_arrival_time_isostring,
|
|
198
|
+
departure_time: last_position.last_stop_departure_time_isostring,
|
|
201
199
|
id: last_position.last_stop_id,
|
|
202
200
|
sequence: last_position.last_stop_sequence,
|
|
203
201
|
},
|
|
204
202
|
next_stop: {
|
|
205
|
-
arrival_time: last_position.
|
|
206
|
-
departure_time: last_position.
|
|
203
|
+
arrival_time: last_position.next_stop_arrival_time_isostring,
|
|
204
|
+
departure_time: last_position.next_stop_departure_time_isostring,
|
|
207
205
|
id: last_position.next_stop_id,
|
|
208
206
|
sequence: last_position.next_stop_sequence,
|
|
209
207
|
},
|
|
210
|
-
origin_timestamp: last_position.
|
|
208
|
+
origin_timestamp: last_position.origin_timestamp_isostring,
|
|
211
209
|
shape_dist_traveled: last_position.shape_dist_traveled,
|
|
212
210
|
speed: last_position.speed,
|
|
213
211
|
state_position: last_position.state_position || null,
|
|
@@ -232,7 +230,7 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
232
230
|
},
|
|
233
231
|
origin_route_name: trip.origin_route_name,
|
|
234
232
|
sequence_id: trip.sequence_id,
|
|
235
|
-
start_timestamp: trip.
|
|
233
|
+
start_timestamp: trip.start_timestamp_isostring,
|
|
236
234
|
vehicle_registration_number: trip.vehicle_registration_number,
|
|
237
235
|
vehicle_type,
|
|
238
236
|
wheelchair_accessible: trip.wheelchair_accessible,
|
|
@@ -249,20 +247,20 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
249
247
|
},
|
|
250
248
|
is_canceled: position.is_canceled,
|
|
251
249
|
last_stop: {
|
|
252
|
-
arrival_time: position.
|
|
253
|
-
departure_time: position.
|
|
250
|
+
arrival_time: position.last_stop_arrival_time_isostring,
|
|
251
|
+
departure_time: position.last_stop_departure_time_isostring,
|
|
254
252
|
id: position.last_stop_id,
|
|
255
253
|
sequence: position.last_stop_sequence,
|
|
256
254
|
},
|
|
257
255
|
lat: position.lat,
|
|
258
256
|
lng: position.lng,
|
|
259
257
|
next_stop: {
|
|
260
|
-
arrival_time: position.
|
|
261
|
-
departure_time: position.
|
|
258
|
+
arrival_time: position.next_stop_arrival_time_isostring,
|
|
259
|
+
departure_time: position.next_stop_departure_time_isostring,
|
|
262
260
|
id: position.next_stop_id,
|
|
263
261
|
sequence: position.next_stop_sequence,
|
|
264
262
|
},
|
|
265
|
-
origin_timestamp: position.
|
|
263
|
+
origin_timestamp: position.origin_timestamp_isostring,
|
|
266
264
|
shape_dist_traveled: position.shape_dist_traveled,
|
|
267
265
|
speed: position.speed,
|
|
268
266
|
};
|
|
@@ -340,18 +338,18 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
340
338
|
throw new Error("Method not implemented.");
|
|
341
339
|
}
|
|
342
340
|
/** Creates Projection Alias for epoch in milliseconds column converted to ISO String in defined timezone
|
|
343
|
-
* @param {string}
|
|
341
|
+
* @param {string} name Column name
|
|
344
342
|
* @param {string} preferredTimezone Preferred timezone code
|
|
345
|
-
* @returns Projection Alias
|
|
343
|
+
* @returns Projection Alias with _isostring suffix
|
|
346
344
|
*/
|
|
347
|
-
convertEpochMsColumnToISOString(
|
|
345
|
+
convertEpochMsColumnToISOString(name, preferredTimezone) {
|
|
348
346
|
return [
|
|
349
|
-
sequelize_1.default.literal(` TO_CHAR(DATE_TRUNC('second',TO_TIMESTAMP(${
|
|
347
|
+
sequelize_1.default.literal(` TO_CHAR(DATE_TRUNC('second',TO_TIMESTAMP("${name}"/1000)) AT TIME ZONE '${preferredTimezone}',` +
|
|
350
348
|
` 'YYYY-MM-DD"T"HH24:MI:SS') || replace('+'` +
|
|
351
|
-
` || to_char(DATE_TRUNC('second',TO_TIMESTAMP(${
|
|
352
|
-
` AT TIME ZONE '${preferredTimezone}' - DATE_TRUNC('second',TO_TIMESTAMP(${
|
|
349
|
+
` || to_char(DATE_TRUNC('second',TO_TIMESTAMP("${name}"/1000))` +
|
|
350
|
+
` AT TIME ZONE '${preferredTimezone}' - DATE_TRUNC('second',TO_TIMESTAMP("${name}"/1000))` +
|
|
353
351
|
` AT TIME ZONE 'UTC','HH24:MMFM'),'+-', '-')`),
|
|
354
|
-
|
|
352
|
+
name + `_isostring`,
|
|
355
353
|
];
|
|
356
354
|
}
|
|
357
355
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VehiclePositionsTripsModel.js","sourceRoot":"","sources":["../../../../src/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6EAAuE;AACvE,iFAAgH;AAChH,gGAA+D;AAE/D,yEAAiF;AACjF,+DAAkI;AAClI,qEAA0E;AAC1E,qFAA0D;AAC1D,0CAAuG;AAEvG,MAAa,0BAA2B,SAAQ,uBAAc;IAI1D;QACI,KAAK,CAAC,oCAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,oCAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,oCAAgB,CAAC,KAAK,CAAC,yBAAyB,EAAE;YACrH,MAAM,EAAE,oCAAgB,CAAC,QAAQ;SACpC,CAAC,CAAC;QAGA,cAAS,GAAG,CAAC,CAA0B,EAAE,EAAE;YAC9C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC,cAAc,EAAE;gBACzE,EAAE,EAAE,eAAe;gBACnB,UAAU,EAAE,UAAU;aACzB,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,8BAA8B,CAAC,cAAc,EAAE;gBAC3E,EAAE,EAAE,eAAe;gBACnB,UAAU,EAAE,kBAAkB;aACjC,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,iCAAiC,CAAC,cAAc,EAAE;gBAC9E,EAAE,EAAE,cAAc;gBAClB,UAAU,EAAE,iBAAiB;aAChC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF;;;;;;;;;;WAUG;QACI,WAAM,GAAG,CAAO,OAYtB,EAAgB,EAAE;YACf,IAAI;gBACA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;gBAChD,MAAM,
|
|
1
|
+
{"version":3,"file":"VehiclePositionsTripsModel.js","sourceRoot":"","sources":["../../../../src/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.ts"],"names":[],"mappings":"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"}
|