@golemio/pid 3.5.1-dev.1632495980 → 3.5.1

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 (53) hide show
  1. package/dist/integration-engine/ropid-gtfs/data-access/cache/RunTripsRedisRepository.js +1 -2
  2. package/dist/integration-engine/ropid-gtfs/data-access/cache/RunTripsRedisRepository.js.map +1 -1
  3. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateTrainDelayTask.js.map +1 -1
  4. package/dist/output-gateway/pid/controllers/v2/V2DepartureBoardsController.js +3 -1
  5. package/dist/output-gateway/pid/controllers/v2/V2DepartureBoardsController.js.map +1 -1
  6. package/dist/output-gateway/pid/index.d.ts +5 -4
  7. package/dist/output-gateway/pid/index.js +0 -1
  8. package/dist/output-gateway/pid/index.js.map +1 -1
  9. package/dist/output-gateway/pid/ioc/Di.js +0 -4
  10. package/dist/output-gateway/pid/ioc/Di.js.map +1 -1
  11. package/dist/output-gateway/pid/ioc/OgPidToken.d.ts +0 -2
  12. package/dist/output-gateway/pid/ioc/OgPidToken.js +0 -2
  13. package/dist/output-gateway/pid/ioc/OgPidToken.js.map +1 -1
  14. package/dist/output-gateway/pid/models/PIDDepartureBoardsModel.d.ts +28 -14
  15. package/dist/output-gateway/pid/models/PIDDepartureBoardsModel.js +72 -192
  16. package/dist/output-gateway/pid/models/PIDDepartureBoardsModel.js.map +1 -1
  17. package/dist/output-gateway/pid/models/helpers/PIDDepartureModel.js +15 -26
  18. package/dist/output-gateway/pid/models/helpers/PIDDepartureModel.js.map +1 -1
  19. package/dist/output-gateway/pid/models/helpers/SkipHelper.d.ts +0 -11
  20. package/dist/output-gateway/pid/models/helpers/SkipHelper.js +0 -91
  21. package/dist/output-gateway/pid/models/helpers/SkipHelper.js.map +1 -1
  22. package/dist/output-gateway/pid/models/helpers/interfaces/IPIDDepartureQueryOptions.d.ts +0 -3
  23. package/dist/output-gateway/pid/service/facade/TransferFacade.js +0 -2
  24. package/dist/output-gateway/pid/service/facade/TransferFacade.js.map +1 -1
  25. package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.d.ts +2 -4
  26. package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.js +68 -90
  27. package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.js.map +1 -1
  28. package/dist/output-gateway/public/domain/repository/IVehiclePositionsRepository.d.ts +1 -2
  29. package/dist/output-gateway/shared/constants/validations.js +1 -1
  30. package/dist/output-gateway/shared/constants/validations.js.map +1 -1
  31. package/dist/schema-definitions/ropid-gtfs/redis/const.d.ts +0 -1
  32. package/dist/schema-definitions/ropid-gtfs/redis/const.js +1 -2
  33. package/dist/schema-definitions/ropid-gtfs/redis/const.js.map +1 -1
  34. package/docs/openapi-output.yaml +2 -10
  35. package/package.json +3 -3
  36. package/db/migrations/postgresql/20250103092631-skip-missing.js +0 -53
  37. package/db/migrations/postgresql/sqls/20250103092631-skip-missing-down.sql +0 -184
  38. package/db/migrations/postgresql/sqls/20250103092631-skip-missing-up.sql +0 -195
  39. package/dist/output-gateway/pid/domain/DepartureInterfaces.d.ts +0 -7
  40. package/dist/output-gateway/pid/domain/DepartureInterfaces.js +0 -3
  41. package/dist/output-gateway/pid/domain/DepartureInterfaces.js.map +0 -1
  42. package/dist/output-gateway/pid/models/helpers/const.d.ts +0 -4
  43. package/dist/output-gateway/pid/models/helpers/const.js +0 -8
  44. package/dist/output-gateway/pid/models/helpers/const.js.map +0 -1
  45. package/dist/output-gateway/pid/models/interfaces/IGetDeparturesOptions.d.ts +0 -21
  46. package/dist/output-gateway/pid/models/interfaces/IGetDeparturesOptions.js +0 -3
  47. package/dist/output-gateway/pid/models/interfaces/IGetDeparturesOptions.js.map +0 -1
  48. package/dist/output-gateway/ropid-gtfs/data-access/redis/RunTripsRedisRepository.d.ts +0 -10
  49. package/dist/output-gateway/ropid-gtfs/data-access/redis/RunTripsRedisRepository.js +0 -65
  50. package/dist/output-gateway/ropid-gtfs/data-access/redis/RunTripsRedisRepository.js.map +0 -1
  51. package/dist/output-gateway/ropid-gtfs/domain/repository/IRunTripsRedisRepository.d.ts +0 -4
  52. package/dist/output-gateway/ropid-gtfs/domain/repository/IRunTripsRedisRepository.js +0 -3
  53. package/dist/output-gateway/ropid-gtfs/domain/repository/IRunTripsRedisRepository.js.map +0 -1
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RunTripsRedisRepository = void 0;
4
- const const_1 = require("../../../../schema-definitions/ropid-gtfs/redis/const");
5
4
  const GtfsRunTripCacheDtoSchema_1 = require("../../../../schema-definitions/vehicle-positions/redis/schemas/GtfsRunTripCacheDtoSchema");
6
5
  const RedisModel_1 = require("@golemio/core/dist/integration-engine/models/RedisModel");
7
6
  const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
@@ -16,5 +15,5 @@ class RunTripsRedisRepository extends RedisModel_1.RedisModel {
16
15
  }
17
16
  }
18
17
  exports.RunTripsRedisRepository = RunTripsRedisRepository;
19
- RunTripsRedisRepository.NAMESPACE_PREFIX = const_1.GTFS_RUN_SCHEDULE_NAMESPACE_PREFIX;
18
+ RunTripsRedisRepository.NAMESPACE_PREFIX = "gtfsRunSchedule";
20
19
  //# sourceMappingURL=RunTripsRedisRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RunTripsRedisRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/cache/RunTripsRedisRepository.ts"],"names":[],"mappings":";;;AAAA,iFAAiF;AACjF,wIAA2G;AAC3G,wFAAqF;AACrF,mFAAkF;AAElF,MAAa,uBAAwB,SAAQ,uBAAU;IAGnD;QACI,KAAK,CACD,6BAA6B,EAC7B;YACI,kBAAkB,EAAE,IAAI,CAAC,KAAK;YAC9B,oBAAoB,EAAE,IAAI,CAAC,SAAS;YACpC,wBAAwB,EAAE,KAAK;YAC/B,MAAM,EAAE,uBAAuB,CAAC,gBAAgB;SACnD,EACD,IAAI,uCAAmB,CAAC,sCAAsC,EAAE,qDAAyB,CAAC,CAC7F,CAAC;IACN,CAAC;;AAdL,0DAeC;AAdiB,wCAAgB,GAAG,0CAAkC,CAAC"}
1
+ {"version":3,"file":"RunTripsRedisRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/cache/RunTripsRedisRepository.ts"],"names":[],"mappings":";;;AAAA,wIAA2G;AAC3G,wFAAqF;AACrF,mFAAkF;AAElF,MAAa,uBAAwB,SAAQ,uBAAU;IAGnD;QACI,KAAK,CACD,6BAA6B,EAC7B;YACI,kBAAkB,EAAE,IAAI,CAAC,KAAK;YAC9B,oBAAoB,EAAE,IAAI,CAAC,SAAS;YACpC,wBAAwB,EAAE,KAAK;YAC/B,MAAM,EAAE,uBAAuB,CAAC,gBAAgB;SACnD,EACD,IAAI,uCAAmB,CAAC,sCAAsC,EAAE,qDAAyB,CAAC,CAC7F,CAAC;IACN,CAAC;;AAdL,0DAeC;AAdiB,wCAAgB,GAAG,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PropagateTrainDelayTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateTrainDelayTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PropagateTrainDelayTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateTrainDelayTask.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ class V2DepartureBoardsController {
29
29
  : undefined;
30
30
  const span = (0, trace_provider_1.createChildSpan)("V2DepartureBoardsController.getDepartureBoard");
31
31
  try {
32
- const data = await this.departureBoardsModel.getAll({
32
+ const data = await this.departureBoardsModel.GetAll({
33
33
  aswIds: query.aswIds,
34
34
  cisIds: query.cisIds,
35
35
  gtfsIds: query.ids,
@@ -48,6 +48,8 @@ class V2DepartureBoardsController {
48
48
  includeMetroTrains: query.includeMetroTrains,
49
49
  airCondition: query.airCondition,
50
50
  });
51
+ // allow access response Date header
52
+ res.setHeader("access-control-expose-headers", "date");
51
53
  res.status(200).send(shared_1.RopidRouterUtils.mapObjectToDTOInstance(dto_1.DepartureBoardsResponseDTO, data));
52
54
  }
53
55
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"V2DepartureBoardsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/controllers/v2/V2DepartureBoardsController.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAkF;AAClF,kFAAiF;AACjF,4CAA8C;AAC9C,+FAA6F;AAE7F,gGAA2E;AAE3E,MAAa,2BAA2B;IAGpC;QAIO,sBAAiB,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAChE,MAAM,KAAK,GAAG,yBAAgB,CAAC,sBAAsB,CAAC,6BAAuB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1F,MAAM,iBAAiB,GAAG,yBAAgB,CAAC,oBAAoB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAEzF,oDAAoD;YACpD,cAAc;YACd,uBAAuB;YACvB,0BAA0B;YAC1B,yBAAyB;YACzB,4BAA4B;YAC5B,MAAM,qBAAqB,GAAW,uDAAuD,CAAC;YAC9F,+DAA+D;YAC/D,MAAM,QAAQ,GAAuB,KAAK,CAAC,QAAQ;gBAC/C,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC;oBACzC,CAAC,CAAC,IAAA,yBAAM,EAAC,KAAK,CAAC,QAAQ,CAAC;oBACxB,CAAC,CAAC,yBAAM,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,iBAAiB,CAAC;gBAClD,CAAC,CAAC,SAAS,CAAC;YAEhB,MAAM,IAAI,GAAG,IAAA,gCAAe,EAAC,+CAA+C,CAAC,CAAC;YAC9E,IAAI;gBACA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;oBAChD,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,OAAO,EAAE,KAAK,CAAC,GAAG;oBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,QAAQ;oBACR,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK;oBACjC,QAAQ,EAAE,iBAAiB;oBAC3B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;oBAC5C,YAAY,EAAE,KAAK,CAAC,YAAY;iBACnC,CAAC,CAAC;gBACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAgB,CAAC,sBAAsB,CAAC,gCAA0B,EAAE,IAAI,CAAC,CAAC,CAAC;aACnG;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;oBAAS;gBACN,IAAI,EAAE,GAAG,EAAE,CAAC;aACf;QACL,CAAC,CAAC;QAhDE,IAAI,CAAC,oBAAoB,GAAG,IAAI,iDAAuB,EAAE,CAAC;IAC9D,CAAC;CAgDJ;AArDD,kEAqDC"}
1
+ {"version":3,"file":"V2DepartureBoardsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/controllers/v2/V2DepartureBoardsController.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAkF;AAClF,kFAAiF;AACjF,4CAA8C;AAC9C,+FAA6F;AAE7F,gGAA2E;AAE3E,MAAa,2BAA2B;IAGpC;QAIO,sBAAiB,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAChE,MAAM,KAAK,GAAG,yBAAgB,CAAC,sBAAsB,CAAC,6BAAuB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1F,MAAM,iBAAiB,GAAG,yBAAgB,CAAC,oBAAoB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAEzF,oDAAoD;YACpD,cAAc;YACd,uBAAuB;YACvB,0BAA0B;YAC1B,yBAAyB;YACzB,4BAA4B;YAC5B,MAAM,qBAAqB,GAAW,uDAAuD,CAAC;YAC9F,+DAA+D;YAC/D,MAAM,QAAQ,GAAuB,KAAK,CAAC,QAAQ;gBAC/C,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC;oBACzC,CAAC,CAAC,IAAA,yBAAM,EAAC,KAAK,CAAC,QAAQ,CAAC;oBACxB,CAAC,CAAC,yBAAM,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,iBAAiB,CAAC;gBAClD,CAAC,CAAC,SAAS,CAAC;YAEhB,MAAM,IAAI,GAAG,IAAA,gCAAe,EAAC,+CAA+C,CAAC,CAAC;YAC9E,IAAI;gBACA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;oBAChD,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,OAAO,EAAE,KAAK,CAAC,GAAG;oBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,QAAQ;oBACR,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK;oBACjC,QAAQ,EAAE,iBAAiB;oBAC3B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;oBAC5C,YAAY,EAAE,KAAK,CAAC,YAAY;iBACnC,CAAC,CAAC;gBACH,oCAAoC;gBACpC,GAAG,CAAC,SAAS,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;gBACvD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAgB,CAAC,sBAAsB,CAAC,gCAA0B,EAAE,IAAI,CAAC,CAAC,CAAC;aACnG;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;oBAAS;gBACN,IAAI,EAAE,GAAG,EAAE,CAAC;aACf;QACL,CAAC,CAAC;QAlDE,IAAI,CAAC,oBAAoB,GAAG,IAAI,iDAAuB,EAAE,CAAC;IAC9D,CAAC;CAkDJ;AAvDD,kEAuDC"}
@@ -33,9 +33,6 @@ export interface IPIDDeparture {
33
33
  departure_datetime_real: Date | null;
34
34
  real_wheelchair_accessible: boolean | null;
35
35
  is_canceled: boolean;
36
- origin_route_name: string | null;
37
- run_number: number | null;
38
- "trip.start_timestamp": string | null;
39
36
  "trip.last_position.last_stop_id": string | null;
40
37
  "trip.last_position.last_stop_sequence": number | null;
41
38
  "trip.last_position.last_stop_name": string | null;
@@ -112,6 +109,11 @@ export interface IStop {
112
109
  stop_name: string;
113
110
  platform_code: string;
114
111
  }
112
+ export interface IDepartureBoard {
113
+ departures: IPIDDeparture[];
114
+ infotexts: any[];
115
+ stops: IStop[];
116
+ }
115
117
  export interface IDepartureTime {
116
118
  predicted: string | null;
117
119
  scheduled: string | null;
@@ -137,7 +139,6 @@ export declare enum DepartureFilter {
137
139
  }
138
140
  export declare enum DepartureSkip {
139
141
  UNTRACKED = "untracked",
140
- MISSING = "missing",
141
142
  CANCELED = "canceled",
142
143
  AT_STOP = "atStop"
143
144
  }
@@ -41,7 +41,6 @@ var DepartureFilter;
41
41
  var DepartureSkip;
42
42
  (function (DepartureSkip) {
43
43
  DepartureSkip["UNTRACKED"] = "untracked";
44
- DepartureSkip["MISSING"] = "missing";
45
44
  DepartureSkip["CANCELED"] = "canceled";
46
45
  DepartureSkip["AT_STOP"] = "atStop";
47
46
  // ON_INFOTEXT = "onInfotext",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-gateway/pid/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,4CAA0B;AAC1B,2CAAyB;AAiHzB,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,gCAAe,CAAA;AACnB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,+BAAa,CAAA;IACb,yCAAuB,CAAA;AAC3B,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAED,IAAY,eAQX;AARD,WAAY,eAAe;IACvB,gCAAa,CAAA;IACb,2CAAwB,CAAA;IACxB,0DAAuC,CAAA;IACvC,oDAAiC,CAAA;IACjC,mEAAgD,CAAA;IAChD,qEAAkD,CAAA;IAClD,8EAA2D,CAAA;AAC/D,CAAC,EARW,eAAe,+BAAf,eAAe,QAQ1B;AAED,IAAY,aAMX;AAND,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,mCAAkB,CAAA;IAClB,8BAA8B;AAClC,CAAC,EANW,aAAa,6BAAb,aAAa,QAMxB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-gateway/pid/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,4CAA0B;AAC1B,2CAAyB;AAoHzB,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,gCAAe,CAAA;AACnB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,+BAAa,CAAA;IACb,yCAAuB,CAAA;AAC3B,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAED,IAAY,eAQX;AARD,WAAY,eAAe;IACvB,gCAAa,CAAA;IACb,2CAAwB,CAAA;IACxB,0DAAuC,CAAA;IACvC,oDAAiC,CAAA;IACjC,mEAAgD,CAAA;IAChD,qEAAkD,CAAA;IAClD,8EAA2D,CAAA;AAC/D,CAAC,EARW,eAAe,+BAAf,eAAe,QAQ1B;AAED,IAAY,aAKX;AALD,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,sCAAqB,CAAA;IACrB,mCAAkB,CAAA;IAClB,8BAA8B;AAClC,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB"}
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OgPidContainer = void 0;
4
- const PublicVehiclePositionsRepository_1 = require("../../public/data-access/redis/PublicVehiclePositionsRepository");
5
4
  const CisStopGroupRepository_1 = require("../../ropid-gtfs/data-access/CisStopGroupRepository");
6
- const RunTripsRedisRepository_1 = require("../../ropid-gtfs/data-access/redis/RunTripsRedisRepository");
7
5
  const ioc_1 = require("@golemio/core/dist/output-gateway/ioc");
8
6
  const V3InfotextsController_1 = require("../controllers/v3/V3InfotextsController");
9
7
  const V3TransferBoardsController_1 = require("../controllers/v3/V3TransferBoardsController");
@@ -26,8 +24,6 @@ ogPidContainer.registerSingleton(OgPidToken_1.OgPidToken.JISInfotextRopidGTFSSto
26
24
  ogPidContainer.registerSingleton(OgPidToken_1.OgPidToken.JISInfotextRopidGTFSStopsRepository, JISInfotextRopidGTFSStopsRepository_1.JISInfotextRopidGTFSStopsRepository);
27
25
  ogPidContainer.registerSingleton(OgPidToken_1.OgPidToken.JISInfotextRepository, JISInfotextRepository_1.JISInfotextRepository);
28
26
  ogPidContainer.registerSingleton(OgPidToken_1.OgPidToken.DeparturesRepository, data_access_1.DeparturesRepository);
29
- ogPidContainer.registerSingleton(OgPidToken_1.OgPidToken.RunTripsRedisRepository, RunTripsRedisRepository_1.RunTripsRedisRepository);
30
- ogPidContainer.registerSingleton(OgPidToken_1.OgPidToken.PublicVehiclePositionsRepository, PublicVehiclePositionsRepository_1.PublicVehiclePositionsRepository);
31
27
  //#endregion
32
28
  //#region Transformations
33
29
  ogPidContainer.registerSingleton(OgPidToken_1.OgPidToken.JISInfotextDepartureTransformation, JISInfotextDepartureTransformation_1.JISInfotextDepartureTransformation);
@@ -1 +1 @@
1
- {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,sHAAiH;AACjH,gGAA2F;AAC3F,wGAAmG;AACnG,+DAA+E;AAE/E,mFAAgF;AAChF,6FAA0F;AAC1F,gDAAsD;AACtD,gFAA6E;AAC7E,4GAAyG;AACzG,qEAAkE;AAClE,6DAA0D;AAC1D,qEAAkE;AAClE,sHAAmH;AACnH,oHAAiH;AACjH,oHAAiH;AACjH,gHAA6G;AAC7G,6CAA0C;AAE1C,MAAM,cAAc,GAAwB,4BAAsB,CAAC,oBAAoB,EAAE,CAAC;AA8B/D,wCAAc;AA5BzC,sBAAsB;AACtB,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,sBAAsB,EAAE,+CAAsB,CAAC,CAAC;AAC5F,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,mCAAmC,EAAE,yEAAmC,CAAC,CAAC;AACtH,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,mCAAmC,EAAE,yEAAmC,CAAC,CAAC;AACtH,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC;AAC1F,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,oBAAoB,EAAE,kCAAoB,CAAC,CAAC;AACxF,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,uBAAuB,EAAE,iDAAuB,CAAC,CAAC;AAC9F,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC;AAChH,YAAY;AAEZ,yBAAyB;AACzB,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,kCAAkC,EAAE,uEAAkC,CAAC,CAAC;AACpH,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,iCAAiC,EAAE,qEAAiC,CAAC,CAAC;AAClH,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,iCAAiC,EAAE,qEAAiC,CAAC,CAAC;AAClH,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,+BAA+B,EAAE,iEAA+B,CAAC,CAAC;AAC9G,YAAY;AAEZ,gBAAgB;AAChB,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,UAAU,EAAE,uBAAU,CAAC,CAAC;AACpE,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC;AAC5E,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC;AAC5E,YAAY;AAEZ,qBAAqB;AACrB,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,0BAA0B,EAAE,uDAA0B,CAAC,CAAC;AACpG,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,gGAA2F;AAC3F,+DAA+E;AAE/E,mFAAgF;AAChF,6FAA0F;AAC1F,gDAAsD;AACtD,gFAA6E;AAC7E,4GAAyG;AACzG,qEAAkE;AAClE,6DAA0D;AAC1D,qEAAkE;AAClE,sHAAmH;AACnH,oHAAiH;AACjH,oHAAiH;AACjH,gHAA6G;AAC7G,6CAA0C;AAE1C,MAAM,cAAc,GAAwB,4BAAsB,CAAC,oBAAoB,EAAE,CAAC;AA4B/D,wCAAc;AA1BzC,sBAAsB;AACtB,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,sBAAsB,EAAE,+CAAsB,CAAC,CAAC;AAC5F,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,mCAAmC,EAAE,yEAAmC,CAAC,CAAC;AACtH,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,mCAAmC,EAAE,yEAAmC,CAAC,CAAC;AACtH,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC;AAC1F,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,oBAAoB,EAAE,kCAAoB,CAAC,CAAC;AACxF,YAAY;AAEZ,yBAAyB;AACzB,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,kCAAkC,EAAE,uEAAkC,CAAC,CAAC;AACpH,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,iCAAiC,EAAE,qEAAiC,CAAC,CAAC;AAClH,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,iCAAiC,EAAE,qEAAiC,CAAC,CAAC;AAClH,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,+BAA+B,EAAE,iEAA+B,CAAC,CAAC;AAC9G,YAAY;AAEZ,gBAAgB;AAChB,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,UAAU,EAAE,uBAAU,CAAC,CAAC;AACpE,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC;AAC5E,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC;AAC5E,YAAY;AAEZ,qBAAqB;AACrB,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,0BAA0B,EAAE,uDAA0B,CAAC,CAAC;AACpG,cAAc,CAAC,iBAAiB,CAAC,uBAAU,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC"}
@@ -3,8 +3,6 @@ export declare const OgPidToken: {
3
3
  JISInfotextRopidGTFSStopsRepository: symbol;
4
4
  JISInfotextRepository: symbol;
5
5
  DeparturesRepository: symbol;
6
- RunTripsRedisRepository: symbol;
7
- PublicVehiclePositionsRepository: symbol;
8
6
  JISInfotextDepartureTransformation: symbol;
9
7
  JISInfotextTransferTransformation: symbol;
10
8
  JISInfotextOverviewTransformation: symbol;
@@ -7,8 +7,6 @@ exports.OgPidToken = {
7
7
  JISInfotextRopidGTFSStopsRepository: Symbol(),
8
8
  JISInfotextRepository: Symbol(),
9
9
  DeparturesRepository: Symbol(),
10
- RunTripsRedisRepository: Symbol(),
11
- PublicVehiclePositionsRepository: Symbol(),
12
10
  //#endregion
13
11
  //#region Transformations
14
12
  JISInfotextDepartureTransformation: Symbol(),
@@ -1 +1 @@
1
- {"version":3,"file":"OgPidToken.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/ioc/OgPidToken.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;IACtB,sBAAsB;IACtB,sBAAsB,EAAE,MAAM,EAAE;IAChC,mCAAmC,EAAE,MAAM,EAAE;IAC7C,qBAAqB,EAAE,MAAM,EAAE;IAC/B,oBAAoB,EAAE,MAAM,EAAE;IAC9B,uBAAuB,EAAE,MAAM,EAAE;IACjC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,YAAY;IAEZ,yBAAyB;IACzB,kCAAkC,EAAE,MAAM,EAAE;IAC5C,iCAAiC,EAAE,MAAM,EAAE;IAC3C,iCAAiC,EAAE,MAAM,EAAE;IAC3C,+BAA+B,EAAE,MAAM,EAAE;IACzC,YAAY;IAEZ,gBAAgB;IAChB,UAAU,EAAE,MAAM,EAAE;IACpB,cAAc,EAAE,MAAM,EAAE;IACxB,cAAc,EAAE,MAAM,EAAE;IACxB,YAAY;IAEZ,qBAAqB;IACrB,0BAA0B,EAAE,MAAM,EAAE;IACpC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,YAAY;CACf,CAAC"}
1
+ {"version":3,"file":"OgPidToken.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/ioc/OgPidToken.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;IACtB,sBAAsB;IACtB,sBAAsB,EAAE,MAAM,EAAE;IAChC,mCAAmC,EAAE,MAAM,EAAE;IAC7C,qBAAqB,EAAE,MAAM,EAAE;IAC/B,oBAAoB,EAAE,MAAM,EAAE;IAC9B,YAAY;IAEZ,yBAAyB;IACzB,kCAAkC,EAAE,MAAM,EAAE;IAC5C,iCAAiC,EAAE,MAAM,EAAE;IAC3C,iCAAiC,EAAE,MAAM,EAAE;IAC3C,+BAA+B,EAAE,MAAM,EAAE;IACzC,YAAY;IAEZ,gBAAgB;IAChB,UAAU,EAAE,MAAM,EAAE;IACpB,cAAc,EAAE,MAAM,EAAE;IACxB,cAAc,EAAE,MAAM,EAAE;IACxB,YAAY;IAEZ,qBAAqB;IACrB,0BAA0B,EAAE,MAAM,EAAE;IACpC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,YAAY;CACf,CAAC"}
@@ -1,20 +1,34 @@
1
- import { IDepartureBoardOutputDto } from "../domain/DepartureInterfaces";
2
- import { IGetDeparturesOptions } from "./interfaces/IGetDeparturesOptions";
1
+ import { Moment } from "@golemio/core/dist/shared/moment-timezone";
2
+ import { DepartureFilter, DepartureMode, DepartureOrder, DepartureSkip } from "..";
3
3
  declare class PIDDepartureBoardsModel {
4
- private readonly log;
5
- private readonly ropidDeparturesDirectionsModel;
6
- private readonly departuresRepository;
7
- private readonly runTripsRedisRepository;
8
- private readonly positionsRedisRepository;
4
+ private stopsMaxCount;
5
+ private ropidDeparturesDirectionsModel;
6
+ private departuresRepository;
9
7
  private readonly infotextRepository;
10
8
  private readonly infotextTransformation;
11
9
  constructor();
12
- getAll(options: IGetDeparturesOptions): Promise<IDepartureBoardOutputDto>;
13
- private retrieveAndReturnStops;
14
- private retrieveAndReturnInfotexts;
15
- private retrieveAndReturnDirections;
16
- private retrieveAndReturnDepartures;
17
- private retrieveAndReturnRunTrips;
18
- private retrieveAndReturnUntrackedTrips;
10
+ /** Retrieves all gtfs stop times for specific stop, optionaly enhanced with realtime delays
11
+ * @param {string} id Id of the stop
12
+ * @returns Object of the retrieved record or null
13
+ */
14
+ GetAll: (options: {
15
+ aswIds?: string[];
16
+ cisIds?: string[];
17
+ gtfsIds?: string[];
18
+ names?: string[];
19
+ total: number;
20
+ limit: number;
21
+ offset: number;
22
+ mode: DepartureMode;
23
+ minutesBefore: number;
24
+ minutesAfter: number;
25
+ timeFrom?: Moment;
26
+ order: DepartureOrder;
27
+ filter: DepartureFilter;
28
+ skip: DepartureSkip[];
29
+ includeMetroTrains?: boolean;
30
+ airCondition?: boolean;
31
+ timezone: string;
32
+ }) => Promise<any>;
19
33
  }
20
34
  export { PIDDepartureBoardsModel };
@@ -12,223 +12,103 @@ const trace_provider_1 = require("@golemio/core/dist/monitoring/opentelemetry/tr
12
12
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
13
13
  const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
14
14
  const _1 = require(".");
15
- const __1 = require("..");
16
15
  const Di_1 = require("../ioc/Di");
17
16
  const OgPidToken_1 = require("../ioc/OgPidToken");
18
17
  const PIDDepartureModel_1 = __importDefault(require("./helpers/PIDDepartureModel"));
19
- const STOPS_MAX_COUNT = 100;
20
- // TODO refactor - split into facade and multiple service/strategy classes
21
- // Check V3TransferBoardsController and TransferFacade for inspiration
22
18
  class PIDDepartureBoardsModel {
23
19
  constructor() {
24
- this.log = Di_1.OgPidContainer.resolve(CoreToken_1.CoreToken.Logger);
25
- this.ropidDeparturesDirectionsModel = new _1.RopidDeparturesDirectionsModel();
26
- this.departuresRepository = new data_access_1.DeparturesRepository(Di_1.OgPidContainer.resolve(CoreToken_1.CoreToken.PostgresConnector), Di_1.OgPidContainer.resolve(CoreToken_1.CoreToken.SimpleConfig));
27
- this.runTripsRedisRepository = Di_1.OgPidContainer.resolve(OgPidToken_1.OgPidToken.RunTripsRedisRepository);
28
- this.positionsRedisRepository = Di_1.OgPidContainer.resolve(OgPidToken_1.OgPidToken.PublicVehiclePositionsRepository);
29
- this.infotextRepository = Di_1.OgPidContainer.resolve(OgPidToken_1.OgPidToken.JISInfotextRepository);
30
- this.infotextTransformation = Di_1.OgPidContainer.resolve(OgPidToken_1.OgPidToken.JISInfotextDepartureTransformation);
31
- }
32
- async getAll(options) {
33
- const currentMoment = (0, moment_timezone_1.default)();
34
- //#region Data retrieval from DB (GTFS stops, infotexts, directions, departures)
35
- const { stopsToInclude, stopIds } = await this.retrieveAndReturnStops(options);
36
- const [infotextsToInclude, directions, departures] = await Promise.all([
37
- this.retrieveAndReturnInfotexts(stopIds, currentMoment, options),
38
- this.retrieveAndReturnDirections(stopIds),
39
- this.retrieveAndReturnDepartures(stopIds, currentMoment, options),
40
- ]);
41
- //#endregion
42
- //#region Data retrieval from Redis (run schedule, untracked trips)
43
- let runScheduleMap = new Map();
44
- let untrackedTrips = new Set();
45
- const isMissingRequested = options.skip.includes(__1.DepartureSkip.MISSING) && !options.skip.includes(__1.DepartureSkip.UNTRACKED);
46
- // Note: The run schedule and untracked trips are populated only if the skip[]=missing (without untracked) is present
47
- // Check the PIDDeparturesModel.skip function. In other cases they are not needed
48
- if (isMissingRequested) {
49
- const runTuples = new Set();
50
- for (const departure of departures) {
51
- runTuples.add(`${departure.origin_route_name}_${departure.run_number}`);
52
- }
53
- const { runSchedule, runTripIds } = await this.retrieveAndReturnRunTrips(runTuples);
54
- runScheduleMap = runSchedule;
55
- untrackedTrips = await this.retrieveAndReturnUntrackedTrips(runTripIds);
56
- }
57
- //#endregion
58
- //#region Processing and returning departures
59
- const spanProcessing = (0, trace_provider_1.createChildSpan)("V2PIDRouter.Processing");
60
- try {
61
- const departuresToInclude = new PIDDepartureModel_1.default(departures, {
62
- limit: options.limit,
63
- offset: options.offset,
64
- total: options.total,
65
- mode: options.mode,
66
- order: options.order,
67
- filter: options.filter,
68
- skip: options.skip,
69
- departuresDirections: directions,
70
- timezone: options.timezone,
71
- tripNumber: null,
72
- runScheduleMap,
73
- untrackedTrips,
74
- }).toArray();
75
- spanProcessing?.end();
76
- return {
77
- departures: departuresToInclude,
78
- infotexts: infotextsToInclude,
79
- stops: stopsToInclude,
80
- };
81
- }
82
- catch (error) {
83
- spanProcessing?.recordException(error);
84
- if (error instanceof golemio_errors_1.AbstractGolemioError) {
85
- throw error;
86
- }
87
- throw new golemio_errors_1.GeneralError("Error while processing departures", this.constructor.name, error, 500);
88
- }
89
- //#endregion
90
- }
91
- async retrieveAndReturnStops(options) {
92
- const spanStops = (0, trace_provider_1.createChildSpan)("V2PIDRouter.DB.stops");
93
- spanStops?.setAttributes({ ...options, timeFrom: options.timeFrom?.toString() });
94
- try {
20
+ this.stopsMaxCount = 100;
21
+ /** Retrieves all gtfs stop times for specific stop, optionaly enhanced with realtime delays
22
+ * @param {string} id Id of the stop
23
+ * @returns Object of the retrieved record or null
24
+ */
25
+ this.GetAll = async (options) => {
26
+ const currentMoment = (0, moment_timezone_1.default)();
27
+ const minutesOffset = options.timeFrom ? options.timeFrom.diff(currentMoment, "minutes") : 0;
28
+ const spanStops = (0, trace_provider_1.createChildSpan)("V2PIDRouter.DB.stops");
29
+ spanStops?.setAttributes({ ...options, timeFrom: options.timeFrom?.toString() });
95
30
  const stopsToInclude = await models_1.models.GTFSStopModel.GetAll({
96
31
  includeMetroTrains: options.includeMetroTrains,
97
32
  appendAswId: true,
98
33
  aswIds: options.aswIds,
99
34
  cisIds: options.cisIds,
100
35
  gtfsIds: options.gtfsIds,
101
- limit: STOPS_MAX_COUNT + 1,
36
+ limit: this.stopsMaxCount + 1,
102
37
  locationType: StopEnums_1.GtfsStopLocationType.StopOrPlatform,
103
38
  names: options.names,
104
39
  returnRaw: true,
105
40
  });
106
41
  if (stopsToInclude.length === 0) {
107
- throw new golemio_errors_1.GeneralError("No stops found.", this.constructor.name, undefined, 404);
42
+ throw new golemio_errors_1.GeneralError("No stops found.", "DepartureBoardsRouter", undefined, 404);
108
43
  }
109
- else if (stopsToInclude.length > STOPS_MAX_COUNT) {
110
- throw new golemio_errors_1.GeneralError(`Too many stops, try lower number or split requests. The maximum is ${STOPS_MAX_COUNT} stops.`, this.constructor.name, undefined, 413);
44
+ if (stopsToInclude.length > this.stopsMaxCount) {
45
+ throw new golemio_errors_1.GeneralError(`Too many stops, try lower number or split requests. The maximum is ${this.stopsMaxCount} stops.`, "DepartureBoardsRouter", undefined, 413);
111
46
  }
112
- const stopIds = stopsToInclude.map(({ stop_id }) => stop_id);
47
+ const stopsIds = stopsToInclude.map((e) => e.stop_id);
113
48
  spanStops?.end();
114
- return { stopsToInclude, stopIds };
115
- }
116
- catch (error) {
117
- spanStops?.recordException(error);
118
- if (error instanceof golemio_errors_1.AbstractGolemioError) {
119
- throw error;
49
+ const spanInfotexts = (0, trace_provider_1.createChildSpan)("V2PIDRouter.DB.infotexts");
50
+ let infotextsToInclude;
51
+ try {
52
+ const infotexts = await this.infotextRepository.findAllForDepartureBoard(stopsIds, (options.timeFrom ?? currentMoment).toDate());
53
+ infotextsToInclude = this.infotextTransformation.transformArray(infotexts.map((infotext) => ({
54
+ data: infotext,
55
+ timeZone: options.timezone,
56
+ })));
57
+ }
58
+ catch (err) {
59
+ if (err instanceof golemio_errors_1.AbstractGolemioError) {
60
+ throw err;
61
+ }
62
+ throw new golemio_errors_1.GeneralError("Database error", "DepartureBoardsModel", err, 500);
120
63
  }
121
- throw new golemio_errors_1.GeneralError("Error while getting stops", this.constructor.name, error, 500);
122
- }
123
- }
124
- async retrieveAndReturnInfotexts(stopIds, currentMoment, options) {
125
- const spanInfotexts = (0, trace_provider_1.createChildSpan)("V2PIDRouter.DB.infotexts");
126
- try {
127
- const infotexts = await this.infotextRepository.findAllForDepartureBoard(stopIds, (options.timeFrom ?? currentMoment).toDate());
128
- const infotextsToInclude = this.infotextTransformation.transformArray(infotexts.map((infotext) => ({
129
- data: infotext,
130
- timeZone: options.timezone,
131
- })));
132
64
  spanInfotexts?.end();
133
- return infotextsToInclude;
134
- }
135
- catch (error) {
136
- spanInfotexts?.recordException(error);
137
- if (error instanceof golemio_errors_1.AbstractGolemioError) {
138
- throw error;
65
+ const spanDirections = (0, trace_provider_1.createChildSpan)("V2PIDRouter.DB.directions");
66
+ let departuresDirections;
67
+ try {
68
+ departuresDirections = await this.ropidDeparturesDirectionsModel.GetAll(stopsIds);
139
69
  }
140
- throw new golemio_errors_1.GeneralError("Error while getting infotexts", this.constructor.name, error, 500);
141
- }
142
- }
143
- async retrieveAndReturnDirections(stopIds) {
144
- const spanDirections = (0, trace_provider_1.createChildSpan)("V2PIDRouter.DB.directions");
145
- try {
146
- const departuresDirections = await this.ropidDeparturesDirectionsModel.GetAll(stopIds);
147
- spanDirections?.end();
148
- return departuresDirections;
149
- }
150
- catch (error) {
151
- spanDirections?.recordException(error);
152
- if (error instanceof golemio_errors_1.AbstractGolemioError) {
153
- throw error;
70
+ catch (err) {
71
+ throw new golemio_errors_1.GeneralError("Database error", "DepartureBoardsModel", err, 500);
154
72
  }
155
- throw new golemio_errors_1.GeneralError("Error while getting directions", this.constructor.name, error, 500);
156
- }
157
- }
158
- async retrieveAndReturnDepartures(stopIds, currentMoment, options) {
159
- const spanDepartures = (0, trace_provider_1.createChildSpan)("V2PIDRouter.DB.departures");
160
- spanDepartures?.setAttributes({ stopIds });
161
- try {
162
- const minutesOffset = options.timeFrom ? options.timeFrom.diff(currentMoment, "minutes") : 0;
163
- const departures = await this.departuresRepository.GetAll({
164
- currentMoment,
165
- minutesAfter: options.minutesAfter,
166
- minutesBefore: options.minutesBefore,
167
- minutesOffset,
168
- stopsIds: stopIds,
169
- mode: options.mode,
170
- isAirCondition: !!options.airCondition,
171
- });
172
- spanDepartures?.end();
173
- return departures;
174
- }
175
- catch (error) {
176
- spanDepartures?.recordException(error);
177
- if (error instanceof golemio_errors_1.AbstractGolemioError) {
178
- throw error;
73
+ spanDirections?.end();
74
+ try {
75
+ const results = await this.departuresRepository.GetAll({
76
+ currentMoment,
77
+ minutesAfter: options.minutesAfter,
78
+ minutesBefore: options.minutesBefore,
79
+ minutesOffset,
80
+ stopsIds,
81
+ mode: options.mode,
82
+ isAirCondition: !!options.airCondition,
83
+ });
84
+ const spanDepartures = (0, trace_provider_1.createChildSpan)("V2PIDRouter.DB.departures");
85
+ const res = {
86
+ departures: new PIDDepartureModel_1.default(results, {
87
+ limit: options.limit,
88
+ offset: options.offset,
89
+ total: options.total,
90
+ mode: options.mode,
91
+ order: options.order,
92
+ filter: options.filter,
93
+ skip: options.skip,
94
+ departuresDirections,
95
+ timezone: options.timezone,
96
+ tripNumber: null, // not used in this context
97
+ }).toArray(),
98
+ infotexts: infotextsToInclude,
99
+ stops: stopsToInclude,
100
+ };
101
+ spanDepartures?.end();
102
+ return res;
179
103
  }
180
- throw new golemio_errors_1.GeneralError("Error while getting departures", this.constructor.name, error, 500);
181
- }
182
- }
183
- async retrieveAndReturnRunTrips(runTuples) {
184
- const runScheduleMap = new Map();
185
- const tripIds = new Set();
186
- const spanRunTrips = (0, trace_provider_1.createChildSpan)("V2PIDRouter.Redis.runTrips");
187
- try {
188
- const runTuplesArray = Array.from(runTuples);
189
- const runSchedule = await this.runTripsRedisRepository.getMultipleSchedule(runTuplesArray);
190
- for (let i = 0; i < runSchedule.length; i++) {
191
- const runTrip = runSchedule[i];
192
- if (runTrip) {
193
- const tuple = runTuplesArray[i];
194
- runScheduleMap.set(tuple, runTrip.schedule);
195
- for (const trip of runTrip.schedule) {
196
- tripIds.add(trip.trip_id);
197
- }
198
- }
104
+ catch (err) {
105
+ throw new golemio_errors_1.GeneralError("Database error", "DepartureBoardsModel", err, 500);
199
106
  }
200
- spanRunTrips?.end();
201
- }
202
- catch (error) {
203
- spanRunTrips?.recordException(error);
204
- this.log.error(error,
205
- // eslint-disable-next-line max-len
206
- "Cannot retrieve run schedule. The API consumer will receive departures with missing vehicles even if they requested to skip them.");
207
- }
208
- finally {
209
- return {
210
- runSchedule: runScheduleMap,
211
- runTripIds: tripIds,
212
- };
213
- }
214
- }
215
- async retrieveAndReturnUntrackedTrips(tripIds) {
216
- let untrackedTrips = new Set();
217
- const spanUntrackedTrips = (0, trace_provider_1.createChildSpan)("V2PIDRouter.Redis.untrackedTrips");
218
- try {
219
- const tripIdsArray = Array.from(tripIds);
220
- untrackedTrips = await this.positionsRedisRepository.getTripsWithUntrackedVehicles(tripIdsArray);
221
- spanUntrackedTrips?.end();
222
- }
223
- catch (error) {
224
- spanUntrackedTrips?.recordException(error);
225
- this.log.error(error,
226
- // eslint-disable-next-line max-len
227
- "Cannot retrieve untracked trips. The API consumer will receive departures with missing vehicles even if they requested to skip them.");
228
- }
229
- finally {
230
- return untrackedTrips;
231
- }
107
+ };
108
+ this.ropidDeparturesDirectionsModel = new _1.RopidDeparturesDirectionsModel();
109
+ this.departuresRepository = new data_access_1.DeparturesRepository(Di_1.OgPidContainer.resolve(CoreToken_1.CoreToken.PostgresConnector), Di_1.OgPidContainer.resolve(CoreToken_1.CoreToken.SimpleConfig));
110
+ this.infotextRepository = Di_1.OgPidContainer.resolve(OgPidToken_1.OgPidToken.JISInfotextRepository);
111
+ this.infotextTransformation = Di_1.OgPidContainer.resolve(OgPidToken_1.OgPidToken.JISInfotextDepartureTransformation);
232
112
  }
233
113
  }
234
114
  exports.PIDDepartureBoardsModel = PIDDepartureBoardsModel;
@@ -1 +1 @@
1
- {"version":3,"file":"PIDDepartureBoardsModel.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/models/PIDDepartureBoardsModel.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA0D;AAC1D,gDAA2D;AAG3D,oDAA+C;AAO/C,wEAAqE;AACrE,+FAA6F;AAC7F,6EAA8F;AAC9F,gGAA2E;AAC3E,wBAAmD;AACnD,0BAAkD;AAIlD,kCAA2C;AAC3C,kDAA+C;AAE/C,oFAA6D;AAG7D,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,0EAA0E;AAC1E,sEAAsE;AACtE,MAAM,uBAAuB;IASzB;QACI,IAAI,CAAC,GAAG,GAAG,mBAAc,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,8BAA8B,GAAG,IAAI,iCAA8B,EAAE,CAAC;QAC3E,IAAI,CAAC,oBAAoB,GAAG,IAAI,kCAAoB,CAChD,mBAAc,CAAC,OAAO,CAAqB,qBAAS,CAAC,iBAAiB,CAAC,EACvE,mBAAc,CAAC,OAAO,CAAgB,qBAAS,CAAC,YAAY,CAAC,CAChE,CAAC;QACF,IAAI,CAAC,uBAAuB,GAAG,mBAAc,CAAC,OAAO,CAA2B,uBAAU,CAAC,uBAAuB,CAAC,CAAC;QACpH,IAAI,CAAC,wBAAwB,GAAG,mBAAc,CAAC,OAAO,CAClD,uBAAU,CAAC,gCAAgC,CAC9C,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,mBAAc,CAAC,OAAO,CAAwB,uBAAU,CAAC,qBAAqB,CAAC,CAAC;QAC1G,IAAI,CAAC,sBAAsB,GAAG,mBAAc,CAAC,OAAO,CAChD,uBAAU,CAAC,kCAAkC,CAChD,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,OAA8B;QAC9C,MAAM,aAAa,GAAG,IAAA,yBAAM,GAAE,CAAC;QAE/B,gFAAgF;QAChF,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC/E,MAAM,CAAC,kBAAkB,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnE,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC;YAChE,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC;YACzC,IAAI,CAAC,2BAA2B,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC;SACpE,CAAC,CAAC;QACH,YAAY;QAEZ,mEAAmE;QACnE,IAAI,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;QACvD,IAAI,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QAEvC,MAAM,kBAAkB,GACpB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAa,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAa,CAAC,SAAS,CAAC,CAAC;QAEpG,qHAAqH;QACrH,iFAAiF;QACjF,IAAI,kBAAkB,EAAE;YACpB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;YAEpC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;gBAChC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,iBAAiB,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;aAC3E;YAED,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;YAEpF,cAAc,GAAG,WAAW,CAAC;YAC7B,cAAc,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAC;SAC3E;QACD,YAAY;QAEZ,6CAA6C;QAC7C,MAAM,cAAc,GAAG,IAAA,gCAAe,EAAC,wBAAwB,CAAC,CAAC;QACjE,IAAI;YACA,MAAM,mBAAmB,GAAG,IAAI,2BAAkB,CAAC,UAAU,EAAE;gBAC3D,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,oBAAoB,EAAE,UAAU;gBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,UAAU,EAAE,IAAI;gBAChB,cAAc;gBACd,cAAc;aACjB,CAAC,CAAC,OAAO,EAAE,CAAC;YAEb,cAAc,EAAE,GAAG,EAAE,CAAC;YACtB,OAAO;gBACH,UAAU,EAAE,mBAAmB;gBAC/B,SAAS,EAAE,kBAAkB;gBAC7B,KAAK,EAAE,cAAc;aACxB,CAAC;SACL;QAAC,OAAO,KAAK,EAAE;YACZ,cAAc,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;YAEvC,IAAI,KAAK,YAAY,qCAAoB,EAAE;gBACvC,MAAM,KAAK,CAAC;aACf;YAED,MAAM,IAAI,6BAAY,CAAC,mCAAmC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SAClG;QACD,YAAY;IAChB,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAChC,OAA8B;QAE9B,MAAM,SAAS,GAAG,IAAA,gCAAe,EAAC,sBAAsB,CAAC,CAAC;QAC1D,SAAS,EAAE,aAAa,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEjF,IAAI;YACA,MAAM,cAAc,GAAG,MAAM,eAAM,CAAC,aAAa,CAAC,MAAM,CAAC;gBACrD,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;gBAC9C,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,eAAe,GAAG,CAAC;gBAC1B,YAAY,EAAE,gCAAoB,CAAC,cAAc;gBACjD,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EAAE,IAAI;aAClB,CAAC,CAAC;YAEH,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,MAAM,IAAI,6BAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;aACpF;iBAAM,IAAI,cAAc,CAAC,MAAM,GAAG,eAAe,EAAE;gBAChD,MAAM,IAAI,6BAAY,CAClB,sEAAsE,eAAe,SAAS,EAC9F,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,GAAG,CACN,CAAC;aACL;YAED,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;YAC7D,SAAS,EAAE,GAAG,EAAE,CAAC;YAEjB,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;SACtC;QAAC,OAAO,KAAK,EAAE;YACZ,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;YAElC,IAAI,KAAK,YAAY,qCAAoB,EAAE;gBACvC,MAAM,KAAK,CAAC;aACf;YAED,MAAM,IAAI,6BAAY,CAAC,2BAA2B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SAC1F;IACL,CAAC;IAEO,KAAK,CAAC,0BAA0B,CACpC,OAAiB,EACjB,aAAqB,EACrB,OAA8B;QAE9B,MAAM,aAAa,GAAG,IAAA,gCAAe,EAAC,0BAA0B,CAAC,CAAC;QAClE,IAAI;YACA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CACpE,OAAO,EACP,CAAC,OAAO,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC,MAAM,EAAE,CAC/C,CAAC;YAEF,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,cAAc,CACjE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACzB,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC7B,CAAC,CAAC,CACN,CAAC;YAEF,aAAa,EAAE,GAAG,EAAE,CAAC;YACrB,OAAO,kBAAkB,CAAC;SAC7B;QAAC,OAAO,KAAK,EAAE;YACZ,aAAa,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;YAEtC,IAAI,KAAK,YAAY,qCAAoB,EAAE;gBACvC,MAAM,KAAK,CAAC;aACf;YAED,MAAM,IAAI,6BAAY,CAAC,+BAA+B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SAC9F;IACL,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAC,OAAiB;QACvD,MAAM,cAAc,GAAG,IAAA,gCAAe,EAAC,2BAA2B,CAAC,CAAC;QACpE,IAAI;YACA,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACvF,cAAc,EAAE,GAAG,EAAE,CAAC;YAEtB,OAAO,oBAAoB,CAAC;SAC/B;QAAC,OAAO,KAAK,EAAE;YACZ,cAAc,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;YAEvC,IAAI,KAAK,YAAY,qCAAoB,EAAE;gBACvC,MAAM,KAAK,CAAC;aACf;YAED,MAAM,IAAI,6BAAY,CAAC,gCAAgC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SAC/F;IACL,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACrC,OAAiB,EACjB,aAAqB,EACrB,OAA8B;QAE9B,MAAM,cAAc,GAAG,IAAA,gCAAe,EAAC,2BAA2B,CAAC,CAAC;QACpE,cAAc,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAE3C,IAAI;YACA,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7F,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;gBACtD,aAAa;gBACb,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,aAAa;gBACb,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY;aACzC,CAAC,CAAC;YAEH,cAAc,EAAE,GAAG,EAAE,CAAC;YACtB,OAAO,UAAU,CAAC;SACrB;QAAC,OAAO,KAAK,EAAE;YACZ,cAAc,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;YAEvC,IAAI,KAAK,YAAY,qCAAoB,EAAE;gBACvC,MAAM,KAAK,CAAC;aACf;YAED,MAAM,IAAI,6BAAY,CAAC,gCAAgC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SAC/F;IACL,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,SAAsB;QAI1D,MAAM,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,YAAY,GAAG,IAAA,gCAAe,EAAC,4BAA4B,CAAC,CAAC;QAEnE,IAAI;YACA,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;YAE3F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,OAAO,EAAE;oBACT,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;oBAChC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAE5C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE;wBACjC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBAC7B;iBACJ;aACJ;YAED,YAAY,EAAE,GAAG,EAAE,CAAC;SACvB;QAAC,OAAO,KAAK,EAAE;YACZ,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,KAAK;YACL,mCAAmC;YACnC,mIAAmI,CACtI,CAAC;SACL;gBAAS;YACN,OAAO;gBACH,WAAW,EAAE,cAAc;gBAC3B,UAAU,EAAE,OAAO;aACtB,CAAC;SACL;IACL,CAAC;IAEO,KAAK,CAAC,+BAA+B,CAAC,OAAoB;QAC9D,IAAI,cAAc,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC5C,MAAM,kBAAkB,GAAG,IAAA,gCAAe,EAAC,kCAAkC,CAAC,CAAC;QAE/E,IAAI;YACA,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,cAAc,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,6BAA6B,CAAC,YAAY,CAAC,CAAC;YACjG,kBAAkB,EAAE,GAAG,EAAE,CAAC;SAC7B;QAAC,OAAO,KAAK,EAAE;YACZ,kBAAkB,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,KAAK;YACL,mCAAmC;YACnC,sIAAsI,CACzI,CAAC;SACL;gBAAS;YACN,OAAO,cAAc,CAAC;SACzB;IACL,CAAC;CACJ;AAEQ,0DAAuB"}
1
+ {"version":3,"file":"PIDDepartureBoardsModel.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/models/PIDDepartureBoardsModel.ts"],"names":[],"mappings":"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"}
@@ -43,34 +43,23 @@ class PIDDeparturesModel {
43
43
  */
44
44
  this.skip = () => {
45
45
  this.departures = this.departures.filter((departure) => {
46
- if (this.options.skip.length === 0) {
47
- return true;
46
+ let isAtStop = false;
47
+ let isPassStop = false;
48
+ let isCurrentTrip = false;
49
+ if ("arrival_datetime" in departure) {
50
+ isAtStop = departure.stop_sequence === departure["trip.last_position.this_stop_sequence"];
51
+ isPassStop =
52
+ !!departure["trip.last_position.last_stop_sequence"] &&
53
+ departure.stop_sequence <= departure["trip.last_position.last_stop_sequence"];
48
54
  }
49
- let isSkipUntracked = false;
50
- let isSkipMissing = false;
51
- let isSkipCanceled = false;
52
- let isSkipAtStop = false;
53
- for (const skip of this.options.skip) {
54
- if (skip === pid_1.DepartureSkip.UNTRACKED) {
55
- isSkipUntracked = true;
56
- }
57
- else if (skip === pid_1.DepartureSkip.MISSING) {
58
- isSkipMissing = true;
59
- }
60
- else if (skip === pid_1.DepartureSkip.CANCELED) {
61
- isSkipCanceled = true;
62
- }
63
- else if (skip === pid_1.DepartureSkip.AT_STOP) {
64
- isSkipAtStop = true;
65
- }
55
+ else if (this.options.tripNumber) {
56
+ // Skip transfers of current trip (in the vehicle in which the transfer board is located)
57
+ isCurrentTrip = SkipHelper_1.SkipHelper.isMatchingTripNumber(departure, this.options.tripNumber);
66
58
  }
67
- return !((this.options.tripNumber && SkipHelper_1.SkipHelper.isMatchingTripNumber(departure, this.options.tripNumber)) ||
68
- (isSkipUntracked && SkipHelper_1.SkipHelper.hasNoDelayInfo(departure)) ||
69
- (!isSkipUntracked &&
70
- isSkipMissing &&
71
- SkipHelper_1.SkipHelper.isVehicleMissing(departure, this.options.runScheduleMap, this.options.untrackedTrips)) ||
72
- (isSkipCanceled && SkipHelper_1.SkipHelper.isTripCanceled(departure)) ||
73
- (isSkipAtStop && SkipHelper_1.SkipHelper.isVehicleAtStop(departure)));
59
+ return !(isCurrentTrip ||
60
+ (this.options.skip.includes(pid_1.DepartureSkip.UNTRACKED) && !departure.is_delay_available) ||
61
+ (this.options.skip.includes(pid_1.DepartureSkip.CANCELED) && departure.is_canceled) ||
62
+ (this.options.skip.includes(pid_1.DepartureSkip.AT_STOP) && (isAtStop || isPassStop)));
74
63
  });
75
64
  };
76
65
  /** Sorts by proper datetime by given options