@golemio/pid 2.1.5 → 2.1.6

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 (38) hide show
  1. package/db/example/zzz_precomputed_tables.sql +70 -0
  2. package/db/migrations/postgresql/20220112085841-ropidgtfs-scheduled-trips.js +53 -0
  3. package/db/migrations/postgresql/sqls/20220112085841-ropidgtfs-scheduled-trips-down.sql +2 -0
  4. package/db/migrations/postgresql/sqls/20220112085841-ropidgtfs-scheduled-trips-up.sql +39 -0
  5. package/dist/integration-engine/ropid-gtfs/RopidGTFSMetadataModel.d.ts +1 -0
  6. package/dist/integration-engine/ropid-gtfs/RopidGTFSMetadataModel.js +3 -0
  7. package/dist/integration-engine/ropid-gtfs/RopidGTFSMetadataModel.js.map +1 -1
  8. package/dist/integration-engine/ropid-gtfs/RopidGTFSScheduledTripsModel.d.ts +21 -0
  9. package/dist/integration-engine/ropid-gtfs/RopidGTFSScheduledTripsModel.js +151 -0
  10. package/dist/integration-engine/ropid-gtfs/RopidGTFSScheduledTripsModel.js.map +1 -0
  11. package/dist/integration-engine/ropid-gtfs/RopidGTFSWorker.d.ts +1 -0
  12. package/dist/integration-engine/ropid-gtfs/RopidGTFSWorker.js +3 -0
  13. package/dist/integration-engine/ropid-gtfs/RopidGTFSWorker.js.map +1 -1
  14. package/dist/integration-engine/ropid-gtfs/index.d.ts +1 -0
  15. package/dist/integration-engine/ropid-gtfs/index.js +1 -0
  16. package/dist/integration-engine/ropid-gtfs/index.js.map +1 -1
  17. package/dist/integration-engine/vehicle-positions/VehiclePositionsRunsModel.d.ts +2 -0
  18. package/dist/integration-engine/vehicle-positions/VehiclePositionsRunsModel.js +21 -85
  19. package/dist/integration-engine/vehicle-positions/VehiclePositionsRunsModel.js.map +1 -1
  20. package/dist/output-gateway/departure-boards/DepartureBoardsRouter.d.ts +0 -4
  21. package/dist/output-gateway/departure-boards/DepartureBoardsRouter.js +6 -25
  22. package/dist/output-gateway/departure-boards/DepartureBoardsRouter.js.map +1 -1
  23. package/dist/output-gateway/pid/PIDRouter.d.ts +0 -4
  24. package/dist/output-gateway/pid/PIDRouter.js +7 -16
  25. package/dist/output-gateway/pid/PIDRouter.js.map +1 -1
  26. package/dist/output-gateway/shared/RopidRouterUtils.d.ts +12 -0
  27. package/dist/output-gateway/shared/RopidRouterUtils.js +45 -0
  28. package/dist/output-gateway/shared/RopidRouterUtils.js.map +1 -0
  29. package/dist/output-gateway/shared/index.d.ts +1 -0
  30. package/dist/output-gateway/shared/index.js +14 -0
  31. package/dist/output-gateway/shared/index.js.map +1 -0
  32. package/dist/output-gateway/vehicle-positions/VehiclePositionsRouter.d.ts +0 -9
  33. package/dist/output-gateway/vehicle-positions/VehiclePositionsRouter.js +6 -47
  34. package/dist/output-gateway/vehicle-positions/VehiclePositionsRouter.js.map +1 -1
  35. package/dist/schema-definitions/ropid-gtfs/RopidGTFSPrecomputed.d.ts +65 -0
  36. package/dist/schema-definitions/ropid-gtfs/RopidGTFSPrecomputed.js +100 -0
  37. package/dist/schema-definitions/ropid-gtfs/RopidGTFSPrecomputed.js.map +1 -1
  38. package/package.json +2 -2
@@ -43,11 +43,12 @@ exports.VehiclePositionsRunsModel = void 0;
43
43
  const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
44
44
  const sequelize_1 = __importStar(require("@golemio/core/dist/shared/sequelize"));
45
45
  const models_1 = require("@golemio/core/dist/integration-engine/models");
46
- const vehicle_positions_1 = require("../../schema-definitions/vehicle-positions");
47
- const connectors_1 = require("@golemio/core/dist/integration-engine/connectors");
48
- const VehiclePositionsRunsMessagesModel_1 = require("./VehiclePositionsRunsMessagesModel");
49
46
  const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
50
47
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
48
+ const connectors_1 = require("@golemio/core/dist/integration-engine/connectors");
49
+ const VehiclePositionsRunsMessagesModel_1 = require("./VehiclePositionsRunsMessagesModel");
50
+ const RopidGTFSScheduledTripsModel_1 = require("../ropid-gtfs/RopidGTFSScheduledTripsModel");
51
+ const vehicle_positions_1 = require("../../schema-definitions/vehicle-positions");
51
52
  class VehiclePositionsRunsModel extends models_1.PostgresModel {
52
53
  constructor() {
53
54
  super(vehicle_positions_1.VehiclePositions.runs.name + "Model", {
@@ -150,88 +151,22 @@ class VehiclePositionsRunsModel extends models_1.PostgresModel {
150
151
  }
151
152
  });
152
153
  this.getScheduledTrips = (route_id, run_number, msg_last_timestamp) => {
153
- const connection = connectors_1.PostgresConnector.getConnection();
154
- /* eslint-disable max-len */
155
- return connection.query(`
156
- SELECT t0.*,
157
- CASE
158
- WHEN EXTRACT(HOUR FROM t0.min_stop_time) > 23
159
- THEN make_timestamptz(
160
- DATE_PART('year', t0.date + INTERVAL '1 day')::INT,
161
- DATE_PART('month', t0.date + INTERVAL '1 day')::INT,
162
- DATE_PART('day', t0.date + INTERVAL '1 day')::INT,
163
- DATE_PART('hour', t0.min_stop_time)::INT - 24,
164
- DATE_PART('minute', t0.min_stop_time)::INT,
165
- DATE_PART('second', t0.min_stop_time),
166
- 'Europe/Prague'
167
- )
168
- ELSE make_timestamptz(
169
- DATE_PART('year', t0.date)::INT,
170
- DATE_PART('month', t0.date)::INT,
171
- DATE_PART('day', t0.date)::INT,
172
- DATE_PART('hour', t0.min_stop_time)::INT,
173
- DATE_PART('minute', t0.min_stop_time)::INT,
174
- DATE_PART('second', t0.min_stop_time),
175
- 'Europe/Prague'
176
- )
177
- END as start_timestamp,
178
- CASE
179
- WHEN EXTRACT(HOUR FROM t0.max_stop_time) > 23
180
- THEN make_timestamptz(
181
- DATE_PART('year', t0.date + INTERVAL '1 day')::INT,
182
- DATE_PART('month', t0.date + INTERVAL '1 day')::INT,
183
- DATE_PART('day', t0.date + INTERVAL '1 day')::INT,
184
- DATE_PART('hour', t0.max_stop_time)::INT - 24,
185
- DATE_PART('minute', t0.max_stop_time)::INT,
186
- DATE_PART('second', t0.max_stop_time),
187
- 'Europe/Prague'
188
- )
189
- ELSE make_timestamptz(
190
- DATE_PART('year', t0.date)::INT,
191
- DATE_PART('month', t0.date)::INT,
192
- DATE_PART('day', t0.date)::INT,
193
- DATE_PART('hour', t0.max_stop_time)::INT,
194
- DATE_PART('minute', t0.max_stop_time)::INT,
195
- DATE_PART('second', t0.max_stop_time),
196
- 'Europe/Prague'
197
- )
198
- END as end_timestamp
199
- FROM (
200
- SELECT
201
- t1.trip_id,
202
- t1.service_id,
203
- t3.date,
204
- t7.route_id,
205
- t7.route_type,
206
- t7.route_short_name,
207
- t7.is_regional,
208
- t7.is_substitute_transport,
209
- t7.is_night,
210
- t8.trip_headsign,
211
- t8.trip_short_name,
212
- t8.block_id,
213
- t8.exceptional,
214
- LEAST(t5.arrival_time::INTERVAL, t5.departure_time::INTERVAL) AS min_stop_time,
215
- GREATEST(t6.arrival_time::INTERVAL, t6.departure_time::INTERVAL) AS max_stop_time
216
- FROM "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_run_numbers t1
217
- LEFT JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_services_first14days t3 ON t1.service_id = t3.service_id
218
- LEFT JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips_minmaxsequences t4 ON t1.trip_id = t4.trip_id
219
- LEFT OUTER JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_stop_times t5 ON t1.trip_id = t5.trip_id AND t5.stop_sequence = t4.min_stop_sequence
220
- LEFT OUTER JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_stop_times t6 ON t1.trip_id = t6.trip_id AND t6.stop_sequence = t4.max_stop_sequence
221
- LEFT JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips t8 ON t1.trip_id = t8.trip_id
222
- LEFT JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_routes t7 ON t8.route_id = t7.route_id
223
- WHERE
224
- t1.route_id = CONCAT('L', '${route_id}')
225
- AND run_number = '${run_number}'
226
- AND (
227
- t3.date = '${msg_last_timestamp}'::DATE
228
- OR t3.date = ('${msg_last_timestamp}'::TIMESTAMP - INTERVAL '1 day')::DATE
229
- OR t3.date = ('${msg_last_timestamp}'::TIMESTAMP + INTERVAL '1 day')::DATE
230
- )
231
- ORDER BY date ASC, min_stop_time ASC
232
- ) t0
233
- `, { type: sequelize_1.default.QueryTypes.SELECT });
234
- /* eslint-enable max-len */
154
+ return this.ropidGTFSScheduledTripsModel.findAll({
155
+ attributes: { exclude: ["run_number"] },
156
+ where: {
157
+ route_id: "L" + route_id,
158
+ run_number,
159
+ [sequelize_1.default.Op.or]: [
160
+ sequelize_1.default.literal(`date = '${msg_last_timestamp}'::DATE`),
161
+ sequelize_1.default.literal(`date = ('${msg_last_timestamp}'::TIMESTAMP - INTERVAL '1 day')::DATE`),
162
+ sequelize_1.default.literal(`date = ('${msg_last_timestamp}'::TIMESTAMP + INTERVAL '1 day')::DATE`),
163
+ ],
164
+ },
165
+ order: [
166
+ ["date", "ASC"],
167
+ ["min_stop_time", "ASC"],
168
+ ],
169
+ });
235
170
  };
236
171
  this.runsMessagesModel = new VehiclePositionsRunsMessagesModel_1.VehiclePositionsRunsMessagesModel();
237
172
  this.runsMessagesModel.sequelizeModel.belongsTo(this.sequelizeModel, { foreignKey: "runs_id", onDelete: "CASCADE" });
@@ -240,6 +175,7 @@ class VehiclePositionsRunsModel extends models_1.PostgresModel {
240
175
  foreignKey: "runs_id",
241
176
  as: "run_messages",
242
177
  });
178
+ this.ropidGTFSScheduledTripsModel = new RopidGTFSScheduledTripsModel_1.RopidGTFSScheduledTripsModel();
243
179
  }
244
180
  }
245
181
  exports.VehiclePositionsRunsModel = VehiclePositionsRunsModel;
@@ -1 +1 @@
1
- {"version":3,"file":"VehiclePositionsRunsModel.js","sourceRoot":"","sources":["../../../src/integration-engine/vehicle-positions/VehiclePositionsRunsModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VehiclePositionsRunsModel.js","sourceRoot":"","sources":["../../../src/integration-engine/vehicle-positions/VehiclePositionsRunsModel.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mFAAwE;AACxE,iFAAoE;AACpE,yEAAqF;AACrF,2EAAoE;AACpE,6EAAuE;AACvE,iFAAqF;AAErF,2FAA4G;AAC5G,6FAA2F;AAC3F,kFAA0D;AA4B1D,MAAa,yBAA0B,SAAQ,sBAAa;IAgBxD;QACI,KAAK,CACD,oCAAgB,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,EACpC;YACI,yBAAyB,EAAE,oCAAgB,CAAC,IAAI,CAAC,yBAAyB;YAC1E,WAAW,EAAE,oCAAgB,CAAC,IAAI,CAAC,WAAW;YAC9C,QAAQ,EAAE,oCAAgB,CAAC,QAAQ;YACnC,UAAU,EAAE,YAAY;YACxB,2BAA2B,EAAE;gBACzB,OAAO,EAAE;oBACL;wBACI,MAAM,EAAE,CAAC,IAAI,CAAC;wBACd,IAAI,EAAE,4BAA4B;qBACrC;oBACD;wBACI,MAAM,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,CAAC;wBAChF,IAAI,EAAE,2BAA2B;qBACpC;iBACJ;aACJ;YACD,kBAAkB,EAAE;gBAChB,YAAY;gBACZ,YAAY;gBACZ,YAAY;gBACZ,YAAY;gBACZ,iBAAiB;gBACjB,iBAAiB;aACpB;SACJ,EACD,IAAI,6BAAS,CAAC,oCAAgB,CAAC,IAAI,CAAC,IAAI,GAAG,gBAAgB,EAAE,oCAAgB,CAAC,IAAI,CAAC,0BAA0B,CAAC,CACjH,CAAC;QAaC,0BAAqB,GAAG,CAAC,GAAyB,EAAwC,EAAE;YAC/F,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;gBAC/B,KAAK,EAAE;oBACH,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;oBAC5C,kBAAkB,EAAE;wBAChB,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,mBAAS,CAAC,OAAO,CAAC,4BAA4B,CAAC;qBAC3D;iBACJ;gBACD,KAAK,EAAE,CAAC,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;gBACvC,GAAG,EAAE,IAAI;aACZ,CAAC,CAAC;QACP,CAAC,CAAC;QAEK,uBAAkB,GAAG,CAAO,EAAE,GAAG,EAAE,WAAW,EAA8B,EAAuC,EAAE;YACxH,MAAM,UAAU,GAAG,8BAAiB,CAAC,aAAa,EAAE,CAAC;YACrD,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;YACzC,IAAI;gBACA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,iCAEpC,GAAG,KACN,YAAY,EAAE,CAAC,WAAW,CAAC,KAE/B;oBACI,OAAO,EAAE;wBACL,EAAE,EAAE,cAAc;wBAClB,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc;qBAC/C;oBACD,WAAW,EAAE,CAAC;iBACjB,CACJ,CAAC;gBACF,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,KAAmD,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAA9E,EAAE,YAAY,EAAE,gBAAgB,OAA8C,EAAzC,SAAS,cAA9C,gBAAgD,CAA8B,CAAC;gBACrF,OAAO;oBACH,GAAG,EAAE,SAAS;oBACd,WAAW,oBAAO,gBAAgB,CAAC,CAAC,CAAC,CAAE;iBAC1C,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACV,aAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,6BAA6B,EAAE,GAAG,CAAC,CAAC;gBAC1D,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,IAAI,4BAAW,CAAC,iCAAiC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;aACxF;QACL,CAAC,CAAA,CAAC;QAEK,uBAAkB,GAAG,CAAO,EAAE,GAAG,EAAE,WAAW,EAA8B,EAAE,KAAa,EAAE,EAAE;YAClG,MAAM,UAAU,GAAG,8BAAiB,CAAC,aAAa,EAAE,CAAC;YACrD,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;YACzC,IAAI;gBACA,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBACxD,IAAI,CAAC,MAAM,CACP,EAAE,kBAAkB,EAAE,GAAG,CAAC,kBAAkB,EAAE,EAC9C,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CACzD;oBACD,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,iCAAM,WAAW,KAAE,OAAO,EAAE,KAAK,IAAG;iBACnF,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO;oBACH,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;oBACnC,WAAW,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;iBACrD,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACV,aAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,6BAA6B,EAAE,GAAG,CAAC,CAAC;gBAC1D,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,IAAI,4BAAW,CAAC,iCAAiC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;aACxF;QACL,CAAC,CAAA,CAAC;QAEK,wBAAmB,GAAG,CAAO,KAAa,EAAmB,EAAE;YAClE,IAAI;gBACA,4DAA4D;gBAC5D,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBACrC,KAAK,EAAE;wBACH,kBAAkB,EAAE;4BAChB,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,mBAAS,CAAC,OAAO,CAAC,qBAAqB,KAAK,SAAS,CAAC;yBAClE;qBACJ;iBACJ,CAAC,CAAC;aACN;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,4BAAW,CAAC,8BAA8B,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;aACjG;QACL,CAAC,CAAA,CAAC;QAEK,sBAAiB,GAAG,CACvB,QAAgB,EAChB,UAAkB,EAClB,kBAA0B,EACE,EAAE;YAC9B,OAAO,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC;gBAC7C,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE;gBACvC,KAAK,EAAE;oBACH,QAAQ,EAAE,GAAG,GAAG,QAAQ;oBACxB,UAAU;oBACV,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;wBACf,mBAAS,CAAC,OAAO,CAAC,WAAW,kBAAkB,SAAS,CAAC;wBACzD,mBAAS,CAAC,OAAO,CAAC,YAAY,kBAAkB,wCAAwC,CAAC;wBACzF,mBAAS,CAAC,OAAO,CAAC,YAAY,kBAAkB,wCAAwC,CAAC;qBAC5F;iBACJ;gBACD,KAAK,EAAE;oBACH,CAAC,MAAM,EAAE,KAAK,CAAC;oBACf,CAAC,eAAe,EAAE,KAAK,CAAC;iBAC3B;aACJ,CAAC,CAAC;QACP,CAAC,CAAC;QAnHE,IAAI,CAAC,iBAAiB,GAAG,IAAI,qEAAiC,EAAE,CAAC;QACjE,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;QACrH,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE;YAC/D,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,SAAS;YACrB,EAAE,EAAE,cAAc;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,4BAA4B,GAAG,IAAI,2DAA4B,EAAE,CAAC;IAC3E,CAAC;CA2GJ;AApKD,8DAoKC"}
@@ -23,10 +23,6 @@ export declare class DepartureBoardsRouter extends BaseRouter {
23
23
  * Initiates all routes. Should respond with correct data to a HTTP requests to all routes.
24
24
  */
25
25
  private transformResponseData;
26
- /**
27
- * Formats datetime value to Zulu format or to preferred timezone by given query parameter
28
- */
29
- private formatDatetime;
30
26
  /**
31
27
  * Initiates all routes. Should respond with correct data to a HTTP requests to all routes.
32
28
  */
@@ -16,18 +16,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
16
16
  step((generator = generator.apply(thisArg, _arguments || [])).next());
17
17
  });
18
18
  };
19
- var __importDefault = (this && this.__importDefault) || function (mod) {
20
- return (mod && mod.__esModule) ? mod : { "default": mod };
21
- };
22
19
  Object.defineProperty(exports, "__esModule", { value: true });
23
20
  exports.departureBoardsRouter = exports.DepartureBoardsRouter = void 0;
24
21
  const lodash_1 = require("lodash");
25
22
  const express_1 = require("@golemio/core/dist/shared/express");
26
23
  const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
27
- const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
28
24
  const redis_1 = require("@golemio/core/dist/output-gateway/redis");
29
25
  const BaseRouter_1 = require("@golemio/core/dist/output-gateway/routes/BaseRouter");
30
26
  const Validation_1 = require("@golemio/core/dist/output-gateway/Validation");
27
+ const shared_1 = require("../shared");
31
28
  const pid_1 = require("../pid");
32
29
  /**
33
30
  * @deprecated use /pid/departureboards instead
@@ -54,13 +51,7 @@ class DepartureBoardsRouter extends BaseRouter_1.BaseRouter {
54
51
  const gtfsIds = this.ConvertToArray(req.query.ids || []);
55
52
  const names = this.ConvertToArray(req.query.names || []);
56
53
  const limit = parseInt(req.query.limit || this.defaultQueryParameters.limit, 10);
57
- // set preferred timezone if exists in library (possible to use _ sign instead of URL encoded / sign)
58
- // default is UTC zulu format
59
- let preferredTimezone = "UTC";
60
- if (req.query.preferredTimezone &&
61
- moment_timezone_1.default.tz.names().includes(req.query.preferredTimezone.replace(/_/g, "/"))) {
62
- preferredTimezone = req.query.preferredTimezone;
63
- }
54
+ const preferredTimezone = shared_1.RopidRouterUtils.validateAndReturnTimezone(req.query.preferredTimezone, this.constructor.name);
64
55
  try {
65
56
  const data = yield this.departureBoardsModel.GetAll({
66
57
  aswIds,
@@ -88,9 +79,9 @@ class DepartureBoardsRouter extends BaseRouter_1.BaseRouter {
88
79
  return {
89
80
  arrival_timestamp: {
90
81
  // with added delay
91
- predicted: this.formatDatetime(x.arrival_datetime_real, preferredTimezone),
82
+ predicted: shared_1.RopidRouterUtils.formatTimestamp(x.arrival_datetime_real, preferredTimezone),
92
83
  // according to trip plan
93
- scheduled: this.formatDatetime(x.arrival_datetime, preferredTimezone),
84
+ scheduled: shared_1.RopidRouterUtils.formatTimestamp(x.arrival_datetime, preferredTimezone),
94
85
  },
95
86
  delay: {
96
87
  is_available: x.is_delay_available,
@@ -99,9 +90,9 @@ class DepartureBoardsRouter extends BaseRouter_1.BaseRouter {
99
90
  },
100
91
  departure_timestamp: {
101
92
  // with added delay
102
- predicted: this.formatDatetime(x.departure_datetime_real, preferredTimezone),
93
+ predicted: shared_1.RopidRouterUtils.formatTimestamp(x.departure_datetime_real, preferredTimezone),
103
94
  // according to trip plan
104
- scheduled: this.formatDatetime(x.departure_datetime, preferredTimezone),
95
+ scheduled: shared_1.RopidRouterUtils.formatTimestamp(x.departure_datetime, preferredTimezone),
105
96
  },
106
97
  // last_stop: {
107
98
  // id: null, // TBD
@@ -125,16 +116,6 @@ class DepartureBoardsRouter extends BaseRouter_1.BaseRouter {
125
116
  },
126
117
  };
127
118
  };
128
- /**
129
- * Formats datetime value to Zulu format or to preferred timezone by given query parameter
130
- */
131
- this.formatDatetime = (datetime, preferredTimezone) => {
132
- if (datetime === null)
133
- return null;
134
- if (preferredTimezone === "UTC")
135
- return datetime;
136
- return (0, moment_timezone_1.default)(datetime).tz(preferredTimezone).toISOString(true);
137
- };
138
119
  /**
139
120
  * Initiates all routes. Should respond with correct data to a HTTP requests to all routes.
140
121
  */
@@ -1 +1 @@
1
- {"version":3,"file":"DepartureBoardsRouter.js","sourceRoot":"","sources":["../../../src/output-gateway/departure-boards/DepartureBoardsRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DepartureBoardsRouter.js","sourceRoot":"","sources":["../../../src/output-gateway/departure-boards/DepartureBoardsRouter.ts"],"names":[],"mappings":"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"}
@@ -22,10 +22,6 @@ export declare class PIDRouter extends BaseRouter {
22
22
  * @param routerName name passed to the returned Error object in case of fail
23
23
  */
24
24
  private checkTimeFromMiddleware;
25
- /**
26
- * Formats datetime value to Zulu format or to preferred timezone by given query parameter
27
- */
28
- private formatDatetime;
29
25
  /**
30
26
  * Initiates all routes. Should respond with correct data to a HTTP requests to all routes.
31
27
  */
@@ -21,12 +21,13 @@ const lodash_1 = require("lodash");
21
21
  const express_1 = require("@golemio/core/dist/shared/express");
22
22
  const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
23
23
  const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
24
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
24
25
  const redis_1 = require("@golemio/core/dist/output-gateway/redis");
25
26
  const BaseRouter_1 = require("@golemio/core/dist/output-gateway/routes/BaseRouter");
26
27
  const Validation_1 = require("@golemio/core/dist/output-gateway/Validation");
28
+ const shared_1 = require("../shared");
27
29
  const _1 = require(".");
28
30
  const PIDDepartureBoardsModel_1 = require("./models/PIDDepartureBoardsModel");
29
- const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
30
31
  class PIDRouter extends BaseRouter_1.BaseRouter {
31
32
  constructor() {
32
33
  super();
@@ -64,7 +65,7 @@ class PIDRouter extends BaseRouter_1.BaseRouter {
64
65
  const skip = this.ConvertToArray(req.query.skip || []);
65
66
  const limit = parseInt(req.query.limit || this.defaultQueryParameters.limit, 10);
66
67
  const total = (0, lodash_1.toNumber)(req.query.total) || limit;
67
- const preferredTimezone = req.query.preferredTimezone ? req.query.preferredTimezone : "UTC";
68
+ const preferredTimezone = shared_1.RopidRouterUtils.validateAndReturnTimezone(req.query.preferredTimezone, this.constructor.name);
68
69
  // datetime is valid ISO 8601 (by express validator)
69
70
  // it matches:
70
71
  // 2020-10-10T10:00:00Z
@@ -115,15 +116,15 @@ class PIDRouter extends BaseRouter_1.BaseRouter {
115
116
  let isAtStop = x.is_delay_available ? x.stop_sequence === x["trip.last_position.this_stop_sequence"] : false;
116
117
  const arrivalTimestamp = {
117
118
  // with added delay
118
- predicted: this.formatDatetime(x.arrival_datetime_real, preferredTimezone),
119
+ predicted: shared_1.RopidRouterUtils.formatTimestamp(x.arrival_datetime_real, preferredTimezone),
119
120
  // according to trip plan
120
- scheduled: this.formatDatetime(x.arrival_datetime, preferredTimezone),
121
+ scheduled: shared_1.RopidRouterUtils.formatTimestamp(x.arrival_datetime, preferredTimezone),
121
122
  };
122
123
  const departureTimestamp = {
123
124
  // with added delay
124
- predicted: this.formatDatetime(x.departure_datetime_real, preferredTimezone),
125
+ predicted: shared_1.RopidRouterUtils.formatTimestamp(x.departure_datetime_real, preferredTimezone),
125
126
  // according to trip plan
126
- scheduled: this.formatDatetime(x.departure_datetime, preferredTimezone),
127
+ scheduled: shared_1.RopidRouterUtils.formatTimestamp(x.departure_datetime, preferredTimezone),
127
128
  };
128
129
  // default value
129
130
  mode = mode || _1.DepartureMode.DEPARTURES;
@@ -188,16 +189,6 @@ class PIDRouter extends BaseRouter_1.BaseRouter {
188
189
  return next();
189
190
  };
190
191
  };
191
- /**
192
- * Formats datetime value to Zulu format or to preferred timezone by given query parameter
193
- */
194
- this.formatDatetime = (datetime, preferredTimezone) => {
195
- if (datetime === null)
196
- return null;
197
- if (preferredTimezone === "UTC")
198
- return datetime;
199
- return (0, moment_timezone_1.default)(datetime).tz(preferredTimezone).toISOString(true);
200
- };
201
192
  /**
202
193
  * Initiates all routes. Should respond with correct data to a HTTP requests to all routes.
203
194
  */
@@ -1 +1 @@
1
- {"version":3,"file":"PIDRouter.js","sourceRoot":"","sources":["../../../src/output-gateway/pid/PIDRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PIDRouter.js","sourceRoot":"","sources":["../../../src/output-gateway/pid/PIDRouter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { ParsedQs } from "qs";
2
+ import { MomentInput } from "@golemio/core/dist/shared/moment-timezone";
3
+ export declare class RopidRouterUtils {
4
+ /**
5
+ * Format to ISO 8601 (without milliseconds)
6
+ */
7
+ static formatTimestamp: (timestamp: MomentInput | null, preferredTimezone: string, shouldParseTimestamp?: boolean) => string | null;
8
+ /**
9
+ * Validate and return timezone (it is possible to use _ symbol instead of URL encoded / symbol)
10
+ */
11
+ static validateAndReturnTimezone: (preferredTimezone: ParsedQs[number], context: string) => string;
12
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RopidRouterUtils = void 0;
7
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
8
+ const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
9
+ const Logger_1 = require("@golemio/core/dist/output-gateway/Logger");
10
+ const config_1 = require("@golemio/core/dist/output-gateway/config");
11
+ class RopidRouterUtils {
12
+ }
13
+ exports.RopidRouterUtils = RopidRouterUtils;
14
+ /**
15
+ * Format to ISO 8601 (without milliseconds)
16
+ */
17
+ RopidRouterUtils.formatTimestamp = (timestamp, preferredTimezone, shouldParseTimestamp = false) => {
18
+ if (!timestamp)
19
+ return null;
20
+ try {
21
+ const datetime = (0, moment_timezone_1.default)(shouldParseTimestamp ? parseInt(timestamp, 10) : timestamp)
22
+ .tz(preferredTimezone)
23
+ .format();
24
+ if (datetime === "Invalid date") {
25
+ Logger_1.log.error("RopidRouterUtils.formatTimestamp Date conversion error");
26
+ return null;
27
+ }
28
+ return datetime;
29
+ }
30
+ catch (err) {
31
+ Logger_1.log.error("RopidRouterUtils.formatTimestamp Date conversion error", err);
32
+ return null;
33
+ }
34
+ };
35
+ /**
36
+ * Validate and return timezone (it is possible to use _ symbol instead of URL encoded / symbol)
37
+ */
38
+ RopidRouterUtils.validateAndReturnTimezone = (preferredTimezone, context) => {
39
+ const timezone = (typeof preferredTimezone === "string" ? preferredTimezone : config_1.config.vehiclePositions.defaultTimezone).replace(/_/s, "/");
40
+ if (!moment_timezone_1.default.tz.names().includes(timezone)) {
41
+ throw new golemio_errors_1.CustomError("Invalid timezone: " + timezone, true, context, undefined);
42
+ }
43
+ return timezone;
44
+ };
45
+ //# sourceMappingURL=RopidRouterUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RopidRouterUtils.js","sourceRoot":"","sources":["../../../src/output-gateway/shared/RopidRouterUtils.ts"],"names":[],"mappings":";;;;;;AACA,6EAAuE;AACvE,gGAAgF;AAChF,qEAA+D;AAC/D,qEAAkE;AAElE,MAAa,gBAAgB;;AAA7B,4CA0CC;AAzCG;;GAEG;AACW,gCAAe,GAAG,CAC5B,SAA6B,EAC7B,iBAAyB,EACzB,oBAAoB,GAAG,KAAK,EACf,EAAE;IACf,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,IAAI;QACA,MAAM,QAAQ,GAAG,IAAA,yBAAM,EAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aACxF,EAAE,CAAC,iBAAiB,CAAC;aACrB,MAAM,EAAE,CAAC;QAEd,IAAI,QAAQ,KAAK,cAAc,EAAE;YAC7B,YAAG,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;SACf;QAED,OAAO,QAAQ,CAAC;KACnB;IAAC,OAAO,GAAG,EAAE;QACV,YAAG,CAAC,KAAK,CAAC,wDAAwD,EAAE,GAAG,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;KACf;AACL,CAAC,CAAC;AAEF;;GAEG;AACW,0CAAyB,GAAG,CAAC,iBAAmC,EAAE,OAAe,EAAU,EAAE;IACvG,MAAM,QAAQ,GAAG,CACb,OAAO,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAM,CAAC,gBAAgB,CAAC,eAAe,CACtG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAErB,IAAI,CAAC,yBAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACvC,MAAM,IAAI,4BAAW,CAAC,oBAAoB,GAAG,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;KACpF;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./RopidRouterUtils";
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./RopidRouterUtils"), exports);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-gateway/shared/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAmC"}
@@ -23,15 +23,6 @@ export declare class VehiclePositionsRouter {
23
23
  */
24
24
  GetGtfsRtVehiclePositionsJSON: (req: Request, res: Response, next: NextFunction) => Promise<void>;
25
25
  private mapPositionItemToISOString;
26
- /**
27
- * Sets preferred timezone if exists in library (possible to use _ sign instead of URL encoded / sign)
28
- * default is UTC zulu format
29
- */
30
- private setTargetTimezone;
31
- /**
32
- * Formats tu Zulu format or to preferred timezone by query
33
- */
34
- private formatTimestamp;
35
26
  /**
36
27
  * Initiates all routes. Should respond with correct data to a HTTP requests to all routes.
37
28
  * @param {number|string} expire TTL for the caching middleware
@@ -27,13 +27,14 @@ const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/mom
27
27
  const redis_1 = require("@golemio/core/dist/output-gateway/redis");
28
28
  const Utils_1 = require("@golemio/core/dist/output-gateway/Utils");
29
29
  const Validation_1 = require("@golemio/core/dist/output-gateway/Validation");
30
+ const shared_1 = require("../shared");
30
31
  const models_1 = require("./models");
31
32
  class VehiclePositionsRouter {
32
33
  constructor() {
33
34
  // Assign router to the express.Router() instance
34
35
  this.router = (0, express_1.Router)();
35
36
  this.GetAll = (req, res, next) => __awaiter(this, void 0, void 0, function* () {
36
- const preferredTimezone = this.setTargetTimezone(req.query.preferredTimezone);
37
+ const preferredTimezone = shared_1.RopidRouterUtils.validateAndReturnTimezone(req.query.preferredTimezone, this.constructor.name);
37
38
  try {
38
39
  const result = yield this.model.GetAll({
39
40
  cisTripNumber: (0, lodash_1.toNumber)(req.query.cisTripNumber) || undefined,
@@ -57,7 +58,7 @@ class VehiclePositionsRouter {
57
58
  });
58
59
  this.GetOne = (req, res, next) => __awaiter(this, void 0, void 0, function* () {
59
60
  const id = req.params.id;
60
- const preferredTimezone = this.setTargetTimezone(req.query.preferredTimezone);
61
+ const preferredTimezone = shared_1.RopidRouterUtils.validateAndReturnTimezone(req.query.preferredTimezone, this.constructor.name);
61
62
  try {
62
63
  const data = yield this.model.GetOne(id, {
63
64
  includeNotTracking: (0, Utils_1.parseBooleanQueryParam)(req.query.includeNotTracking),
@@ -139,26 +140,6 @@ class VehiclePositionsRouter {
139
140
  next(err);
140
141
  }
141
142
  });
142
- /**
143
- * Sets preferred timezone if exists in library (possible to use _ sign instead of URL encoded / sign)
144
- * default is UTC zulu format
145
- */
146
- this.setTargetTimezone = (preferredTimezone) => {
147
- if (preferredTimezone && moment_timezone_1.default.tz.names().includes(preferredTimezone.replace(/_/g, "/"))) {
148
- return preferredTimezone;
149
- }
150
- else {
151
- return "UTC";
152
- }
153
- };
154
- /**
155
- * Formats tu Zulu format or to preferred timezone by query
156
- */
157
- this.formatTimestamp = (datetime, preferredTimezone) => {
158
- return preferredTimezone === "UTC"
159
- ? (0, moment_timezone_1.default)(datetime).toISOString()
160
- : (0, moment_timezone_1.default)(datetime).tz(preferredTimezone).toISOString(true);
161
- };
162
143
  /**
163
144
  * Initiates all routes. Should respond with correct data to a HTTP requests to all routes.
164
145
  * @param {number|string} expire TTL for the caching middleware
@@ -196,32 +177,10 @@ class VehiclePositionsRouter {
196
177
  };
197
178
  return Object.assign(Object.assign({}, x), { all_positions: x.all_positions != null
198
179
  ? Object.assign(Object.assign({}, x.all_positions), { features: x.all_positions.features.map((y) => {
199
- return Object.assign(Object.assign({}, y), { properties: Object.assign(Object.assign({}, y.properties), { last_stop: Object.assign(Object.assign({}, y.properties.last_stop), { arrival_time: y.properties.last_stop.arrival_time != null
200
- ? this.formatTimestamp(parseInt(y.properties.last_stop.arrival_time, 10), preferredTimezone)
201
- : null, departure_time: y.properties.last_stop.departure_time != null
202
- ? this.formatTimestamp(parseInt(y.properties.last_stop.departure_time, 10), preferredTimezone)
203
- : null }), next_stop: Object.assign(Object.assign({}, y.properties.next_stop), { arrival_time: y.properties.next_stop.arrival_time != null
204
- ? this.formatTimestamp(parseInt(x.last_position.next_stop.arrival_time, 10), preferredTimezone)
205
- : null, departure_time: y.properties.next_stop.departure_time != null
206
- ? this.formatTimestamp(parseInt(y.properties.next_stop.departure_time, 10), preferredTimezone)
207
- : null }), origin_timestamp: y.properties.origin_timestamp != null
208
- ? this.formatTimestamp(parseInt(y.properties.origin_timestamp, 10), preferredTimezone)
209
- : null }) });
180
+ return Object.assign(Object.assign({}, y), { properties: Object.assign(Object.assign({}, y.properties), { last_stop: Object.assign(Object.assign({}, y.properties.last_stop), { arrival_time: shared_1.RopidRouterUtils.formatTimestamp(y.properties.last_stop.arrival_time, preferredTimezone, true), departure_time: shared_1.RopidRouterUtils.formatTimestamp(y.properties.last_stop.departure_time, preferredTimezone, true) }), next_stop: Object.assign(Object.assign({}, y.properties.next_stop), { arrival_time: shared_1.RopidRouterUtils.formatTimestamp(y.properties.next_stop.arrival_time, preferredTimezone, true), departure_time: shared_1.RopidRouterUtils.formatTimestamp(y.properties.next_stop.departure_time, preferredTimezone, true) }), origin_timestamp: shared_1.RopidRouterUtils.formatTimestamp(y.properties.origin_timestamp, preferredTimezone, true) }) });
210
181
  }) }) : defaultFeatureObject, last_position: x.last_position != null
211
- ? Object.assign(Object.assign({}, x.last_position), { last_stop: Object.assign(Object.assign({}, x.last_position.last_stop), { arrival_time: x.last_position.last_stop.arrival_time != null
212
- ? this.formatTimestamp(parseInt(x.last_position.last_stop.arrival_time, 10), preferredTimezone)
213
- : null, departure_time: x.last_position.last_stop.departure_time != null
214
- ? this.formatTimestamp(parseInt(x.last_position.last_stop.departure_time, 10), preferredTimezone)
215
- : null }), next_stop: Object.assign(Object.assign({}, x.last_position.next_stop), { arrival_time: x.last_position.next_stop.arrival_time != null
216
- ? this.formatTimestamp(parseInt(x.last_position.next_stop.arrival_time, 10), preferredTimezone)
217
- : null, departure_time: x.last_position.next_stop.departure_time != null
218
- ? this.formatTimestamp(parseInt(x.last_position.next_stop.departure_time, 10), preferredTimezone)
219
- : null }), origin_timestamp: x.last_position.origin_timestamp != null
220
- ? this.formatTimestamp(parseInt(x.last_position.origin_timestamp, 10), preferredTimezone)
221
- : null }) : defaultFeatureObject, trip: x.trip != null
222
- ? Object.assign(Object.assign({}, x.trip), { start_timestamp: x.trip.start_timestamp != null
223
- ? this.formatTimestamp(parseInt(x.trip.start_timestamp, 10), preferredTimezone)
224
- : null }) : defaultFeatureObject });
182
+ ? Object.assign(Object.assign({}, x.last_position), { last_stop: Object.assign(Object.assign({}, x.last_position.last_stop), { arrival_time: shared_1.RopidRouterUtils.formatTimestamp(x.last_position.last_stop.arrival_time, preferredTimezone, true), departure_time: shared_1.RopidRouterUtils.formatTimestamp(x.last_position.last_stop.departure_time, preferredTimezone, true) }), next_stop: Object.assign(Object.assign({}, x.last_position.next_stop), { arrival_time: shared_1.RopidRouterUtils.formatTimestamp(x.last_position.next_stop.arrival_time, preferredTimezone, true), departure_time: shared_1.RopidRouterUtils.formatTimestamp(x.last_position.next_stop.departure_time, preferredTimezone, true) }), origin_timestamp: shared_1.RopidRouterUtils.formatTimestamp(x.last_position.origin_timestamp, preferredTimezone, true) }) : defaultFeatureObject, trip: x.trip != null
183
+ ? Object.assign(Object.assign({}, x.trip), { start_timestamp: shared_1.RopidRouterUtils.formatTimestamp(x.trip.start_timestamp, preferredTimezone, true) }) : defaultFeatureObject });
225
184
  }
226
185
  }
227
186
  exports.VehiclePositionsRouter = VehiclePositionsRouter;