@golemio/pid 4.1.4-dev.2044449114 → 4.1.4-dev.2058905192

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 (30) hide show
  1. package/dist/helpers/GtfsStopParser.d.ts +1 -0
  2. package/dist/helpers/GtfsStopParser.js +6 -0
  3. package/dist/helpers/GtfsStopParser.js.map +1 -1
  4. package/dist/integration-engine/ropid-gtfs/RopidGTFSStopsModel.d.ts +3 -3
  5. package/dist/integration-engine/ropid-gtfs/RopidGTFSStopsModel.js +11 -3
  6. package/dist/integration-engine/ropid-gtfs/RopidGTFSStopsModel.js.map +1 -1
  7. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshGtfsStopsCacheTask.js +1 -1
  8. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshGtfsStopsCacheTask.js.map +1 -1
  9. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/data-access/cache/GtfsStopsRedisRepository.d.ts +2 -2
  10. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/data-access/cache/GtfsStopsRedisRepository.js +4 -0
  11. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/data-access/cache/GtfsStopsRedisRepository.js.map +1 -1
  12. package/dist/output-gateway/pid/controllers/v4/V4TransferBoardsController.d.ts +4 -1
  13. package/dist/output-gateway/pid/controllers/v4/V4TransferBoardsController.js +35 -18
  14. package/dist/output-gateway/pid/controllers/v4/V4TransferBoardsController.js.map +1 -1
  15. package/dist/output-gateway/pid/helpers/TransferBoardFilter.d.ts +5 -2
  16. package/dist/output-gateway/pid/helpers/TransferBoardFilter.js +52 -1
  17. package/dist/output-gateway/pid/helpers/TransferBoardFilter.js.map +1 -1
  18. package/dist/output-gateway/pid/index.d.ts +2 -1
  19. package/dist/output-gateway/pid/index.js.map +1 -1
  20. package/dist/output-gateway/pid/service/facade/StopFacade.d.ts +3 -0
  21. package/dist/output-gateway/pid/service/facade/StopFacade.js +7 -0
  22. package/dist/output-gateway/pid/service/facade/StopFacade.js.map +1 -1
  23. package/dist/output-gateway/pid/service/facade/TransferFacade.d.ts +15 -9
  24. package/dist/output-gateway/pid/service/facade/TransferFacade.js +93 -46
  25. package/dist/output-gateway/pid/service/facade/TransferFacade.js.map +1 -1
  26. package/dist/output-gateway/ropid-gtfs/data-access/redis/GtfsStopsRedisRepository.d.ts +2 -0
  27. package/dist/output-gateway/ropid-gtfs/data-access/redis/GtfsStopsRedisRepository.js +24 -2
  28. package/dist/output-gateway/ropid-gtfs/data-access/redis/GtfsStopsRedisRepository.js.map +1 -1
  29. package/dist/schema-definitions/ropid-gtfs/interfaces/IStopDto.d.ts +3 -1
  30. package/package.json +1 -1
@@ -5,4 +5,5 @@ export declare class GtfsStopParser {
5
5
  private validateAswId;
6
6
  private parseAswId;
7
7
  getAswNodeFromId(aswId: string): string;
8
+ normalizedStopId(stopId: string): string;
8
9
  }
@@ -40,6 +40,12 @@ let GtfsStopParser = exports.GtfsStopParser = class GtfsStopParser {
40
40
  getAswNodeFromId(aswId) {
41
41
  return this.parseAswId(aswId).aswNode;
42
42
  }
43
+ normalizedStopId(stopId) {
44
+ return stopId
45
+ .split(/[^\d]/g)
46
+ .filter((s) => !!s.length)
47
+ .join("/");
48
+ }
43
49
  };
44
50
  exports.GtfsStopParser = GtfsStopParser = __decorate([
45
51
  (0, tsyringe_1.injectable)()
@@ -1 +1 @@
1
- {"version":3,"file":"GtfsStopParser.js","sourceRoot":"","sources":["../../src/helpers/GtfsStopParser.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6EAAwE;AACxE,mEAA8E;AAC9E,iEAAgE;AAChE,oCAAmD;AAG5C,IAAM,cAAc,4BAApB,MAAM,cAAc;IAChB,sBAAsB,CAAC,MAAgB;QAC1C,IAAI,eAAe,GAAmB,EAAE,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,EAAE;gBACV,SAAS;aACZ;YACD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAE9C,eAAe,CAAC,IAAI,CAChB,qBAAS,CAAC,GAAG,CACT,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAC3D,SAAS,IAAI,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAC7E,CACJ,CAAC;SACL;QACD,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEO,cAAc,CAAC,KAAa;QAChC,OAAO,KAAK,IAAI,kBAAU,IAAI,KAAK,IAAI,kBAAU,CAAC;IACtD,CAAC;IAEO,aAAa,CAAC,KAAa,EAAE,MAAc,EAAE,MAAe;QAChE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAEjC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACrF,MAAM,IAAI,6BAAY,CAAC,mBAAmB,KAAK,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,mBAAmB,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;SAC9G;IACL,CAAC;IAEO,UAAU,CAAC,KAAa;QAI5B,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAClC,CAAC;IAEM,gBAAgB,CAAC,KAAa;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;IAC1C,CAAC;CACJ,CAAA;yBA3CY,cAAc;IAD1B,IAAA,qBAAU,GAAE;GACA,cAAc,CA2C1B"}
1
+ {"version":3,"file":"GtfsStopParser.js","sourceRoot":"","sources":["../../src/helpers/GtfsStopParser.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6EAAwE;AACxE,mEAA8E;AAC9E,iEAAgE;AAChE,oCAAmD;AAG5C,IAAM,cAAc,4BAApB,MAAM,cAAc;IAChB,sBAAsB,CAAC,MAAgB;QAC1C,IAAI,eAAe,GAAmB,EAAE,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,EAAE;gBACV,SAAS;aACZ;YACD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAE9C,eAAe,CAAC,IAAI,CAChB,qBAAS,CAAC,GAAG,CACT,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAC3D,SAAS,IAAI,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAC7E,CACJ,CAAC;SACL;QACD,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEO,cAAc,CAAC,KAAa;QAChC,OAAO,KAAK,IAAI,kBAAU,IAAI,KAAK,IAAI,kBAAU,CAAC;IACtD,CAAC;IAEO,aAAa,CAAC,KAAa,EAAE,MAAc,EAAE,MAAe;QAChE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAEjC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACrF,MAAM,IAAI,6BAAY,CAAC,mBAAmB,KAAK,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,mBAAmB,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;SAC9G;IACL,CAAC;IAEO,UAAU,CAAC,KAAa;QAI5B,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAClC,CAAC;IAEM,gBAAgB,CAAC,KAAa;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;IAC1C,CAAC;IAEM,gBAAgB,CAAC,MAAc;QAClC,OAAO,MAAM;aACR,KAAK,CAAC,QAAQ,CAAC;aACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;aACzB,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ,CAAA;yBAlDY,cAAc;IAD1B,IAAA,qBAAU,GAAE;GACA,cAAc,CAkD1B"}
@@ -1,4 +1,4 @@
1
- import { IAwsNodeIdGtfsStopIdDto, IStopDto } from "../../schema-definitions/ropid-gtfs/interfaces/IStopDto";
1
+ import { IStopCacheDto, IStopDto } from "../../schema-definitions/ropid-gtfs/interfaces/IStopDto";
2
2
  import { IModel, PostgresModel } from "@golemio/core/dist/integration-engine";
3
3
  import { IValidator } from "@golemio/core/dist/shared/golemio-validator";
4
4
  import Sequelize from "@golemio/core/dist/shared/sequelize";
@@ -16,7 +16,7 @@ export declare class RopidGTFSStopsModel extends PostgresModel implements IModel
16
16
  constructor();
17
17
  getAll: () => Promise<IStopDto[]>;
18
18
  /**
19
- * Retrieve all aswNodeIds and gtfs_ids where location_type is 0 and computed_cis_stop_id is not null
19
+ * Retrieve all stops data needed for cache where location_type is 0 and computed_cis_stop_id is not null
20
20
  */
21
- getAllAswNodeGtfsStops: () => Promise<IAwsNodeIdGtfsStopIdDto[]>;
21
+ getStopsForCache: () => Promise<IStopCacheDto[]>;
22
22
  }
@@ -36,12 +36,20 @@ let RopidGTFSStopsModel = exports.RopidGTFSStopsModel = class RopidGTFSStopsMode
36
36
  }
37
37
  };
38
38
  /**
39
- * Retrieve all aswNodeIds and gtfs_ids where location_type is 0 and computed_cis_stop_id is not null
39
+ * Retrieve all stops data needed for cache where location_type is 0 and computed_cis_stop_id is not null
40
40
  */
41
- this.getAllAswNodeGtfsStops = async () => {
41
+ this.getStopsForCache = async () => {
42
42
  try {
43
43
  const stops = (await this.sequelizeModel.findAll({
44
- attributes: ["asw_node_id", "stop_id"],
44
+ attributes: [
45
+ "stop_id",
46
+ "asw_node_id",
47
+ "stop_name",
48
+ "platform_code",
49
+ "wheelchair_boarding",
50
+ "zone_id",
51
+ "computed_cis_stop_id",
52
+ ],
45
53
  raw: true,
46
54
  where: {
47
55
  location_type: StopEnums_1.GtfsStopLocationType.StopOrPlatform,
@@ -1 +1 @@
1
- {"version":3,"file":"RopidGTFSStopsModel.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/RopidGTFSStopsModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAA0D;AAC1D,0DAAuC;AACvC,oEAA4C;AAE5C,gFAAyD;AACzD,8EAA8E;AAC9E,6EAAwE;AACxE,mFAA8F;AAC9F,mEAAoE;AACpE,iEAAgE;AAGzD,IAAM,mBAAmB,iCAAzB,MAAM,mBAAoB,SAAQ,kCAAa;IAYlD;QACI,KAAK,CACD,sBAAS,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,EAC9B;YACI,yBAAyB,EAAE,sBAAS,CAAC,KAAK,CAAC,yBAAyB;YACpE,WAAW,EAAE,sBAAS,CAAC,KAAK,CAAC,WAAW;YACxC,QAAQ,EAAE,iBAAS;YACnB,UAAU,EAAE,YAAY;SAC3B,EACD,IAAI,uCAAmB,CAAC,sBAAS,CAAC,KAAK,CAAC,IAAI,GAAG,gBAAgB,EAAE,iBAAO,CAAC,UAAU,CAAC,CACvF,CAAC;QAGC,WAAM,GAAG,KAAK,IAAyB,EAAE;YAC5C,IAAI;gBACA,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;aACxC;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aAC7E;QACL,CAAC,CAAC;QAEF;;WAEG;QACI,2BAAsB,GAAG,KAAK,IAAI,EAAE;YACvC,IAAI;gBACA,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC7C,UAAU,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;oBACtC,GAAG,EAAE,IAAI;oBACT,KAAK,EAAE;wBACH,aAAa,EAAE,gCAAoB,CAAC,cAAc;wBAClD,oBAAoB,EAAE,EAAE,CAAC,cAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;qBAC3C;iBACJ,CAAC,CAA8B,CAAC;gBAEjC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9B,OAAO,EAAE,CAAC;iBACb;gBACD,OAAO,KAAK,CAAC;aAChB;YAAC,OAAO,KAAK,EAAE;gBACZ,MAAM,IAAI,6BAAY,CAAC,mCAAmC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aAC7F;QACL,CAAC,CAAC;IA/BF,CAAC;CAgCJ,CAAA;8BAvDY,mBAAmB;IAD/B,IAAA,qBAAU,GAAE;;GACA,mBAAmB,CAuD/B"}
1
+ {"version":3,"file":"RopidGTFSStopsModel.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/RopidGTFSStopsModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAA0D;AAC1D,0DAAuC;AACvC,oEAA4C;AAE5C,gFAAyD;AACzD,8EAA8E;AAC9E,6EAAwE;AACxE,mFAA8F;AAC9F,mEAAoE;AACpE,iEAAgE;AAGzD,IAAM,mBAAmB,iCAAzB,MAAM,mBAAoB,SAAQ,kCAAa;IAYlD;QACI,KAAK,CACD,sBAAS,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,EAC9B;YACI,yBAAyB,EAAE,sBAAS,CAAC,KAAK,CAAC,yBAAyB;YACpE,WAAW,EAAE,sBAAS,CAAC,KAAK,CAAC,WAAW;YACxC,QAAQ,EAAE,iBAAS;YACnB,UAAU,EAAE,YAAY;SAC3B,EACD,IAAI,uCAAmB,CAAC,sBAAS,CAAC,KAAK,CAAC,IAAI,GAAG,gBAAgB,EAAE,iBAAO,CAAC,UAAU,CAAC,CACvF,CAAC;QAGC,WAAM,GAAG,KAAK,IAAyB,EAAE;YAC5C,IAAI;gBACA,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;aACxC;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aAC7E;QACL,CAAC,CAAC;QAEF;;WAEG;QACI,qBAAgB,GAAG,KAAK,IAAI,EAAE;YACjC,IAAI;gBACA,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC7C,UAAU,EAAE;wBACR,SAAS;wBACT,aAAa;wBACb,WAAW;wBACX,eAAe;wBACf,qBAAqB;wBACrB,SAAS;wBACT,sBAAsB;qBACzB;oBACD,GAAG,EAAE,IAAI;oBACT,KAAK,EAAE;wBACH,aAAa,EAAE,gCAAoB,CAAC,cAAc;wBAClD,oBAAoB,EAAE,EAAE,CAAC,cAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;qBAC3C;iBACJ,CAAC,CAAoB,CAAC;gBAEvB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9B,OAAO,EAAE,CAAC;iBACb;gBACD,OAAO,KAAK,CAAC;aAChB;YAAC,OAAO,KAAK,EAAE;gBACZ,MAAM,IAAI,6BAAY,CAAC,mCAAmC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aAC7F;QACL,CAAC,CAAC;IAvCF,CAAC;CAwCJ,CAAA;8BA/DY,mBAAmB;IAD/B,IAAA,qBAAU,GAAE;;GACA,mBAAmB,CA+D/B"}
@@ -30,7 +30,7 @@ let RefreshGtfsStopsCacheTask = exports.RefreshGtfsStopsCacheTask = class Refres
30
30
  }
31
31
  async execute() {
32
32
  const cisStops = await this.gtfsStopCisModel.getAll();
33
- const gtfsStops = await this.gtfsStopRepository.getAllAswNodeGtfsStops();
33
+ const gtfsStops = await this.gtfsStopRepository.getStopsForCache();
34
34
  await this.gtfsStopsRedisRepository.refreshData(cisStops, gtfsStops);
35
35
  }
36
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"RefreshGtfsStopsCacheTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshGtfsStopsCacheTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAA6E;AAC7E,kFAAqF;AACrF,8EAA0E;AAC1E,iEAAwE;AACxE,4CAAqD;AACrD,2FAAwF;AAGjF,IAAM,yBAAyB,uCAA/B,MAAM,yBAA0B,SAAQ,sCAAiB;IAM5D,YAC8D,wBAA0D,EAC5D,gBAAgD;QAExG,KAAK,CAAC,iCAAqB,CAAC,CAAC;QAHqC,6BAAwB,GAAxB,wBAAwB,CAA0B;QACpD,qBAAgB,GAAhB,gBAAgB,CAAwB;QAP5F,cAAS,GAAG,uBAAuB,CAAC;QACpC,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QAUpD,IAAI,CAAC,kBAAkB,GAAG,IAAI,gCAAmB,EAAE,CAAC;IACxD,CAAC;IAES,KAAK,CAAC,OAAO;QACnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,CAAC;QAEzE,MAAM,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACzE,CAAC;CACJ,CAAA;oCArBY,yBAAyB;IADrC,IAAA,qBAAU,GAAE;IAQJ,WAAA,IAAA,iBAAM,EAAC,iDAAuB,CAAC,wBAAwB,CAAC,CAAA;IACxD,WAAA,IAAA,iBAAM,EAAC,iDAAuB,CAAC,sBAAsB,CAAC,CAAA;qCADqC,mDAAwB;QAClC,mCAAsB;GARnG,yBAAyB,CAqBrC"}
1
+ {"version":3,"file":"RefreshGtfsStopsCacheTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshGtfsStopsCacheTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAA6E;AAC7E,kFAAqF;AACrF,8EAA0E;AAC1E,iEAAwE;AACxE,4CAAqD;AACrD,2FAAwF;AAGjF,IAAM,yBAAyB,uCAA/B,MAAM,yBAA0B,SAAQ,sCAAiB;IAM5D,YAC8D,wBAA0D,EAC5D,gBAAgD;QAExG,KAAK,CAAC,iCAAqB,CAAC,CAAC;QAHqC,6BAAwB,GAAxB,wBAAwB,CAA0B;QACpD,qBAAgB,GAAhB,gBAAgB,CAAwB;QAP5F,cAAS,GAAG,uBAAuB,CAAC;QACpC,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QAUpD,IAAI,CAAC,kBAAkB,GAAG,IAAI,gCAAmB,EAAE,CAAC;IACxD,CAAC;IAES,KAAK,CAAC,OAAO;QACnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC;QAEnE,MAAM,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACzE,CAAC;CACJ,CAAA;oCArBY,yBAAyB;IADrC,IAAA,qBAAU,GAAE;IAQJ,WAAA,IAAA,iBAAM,EAAC,iDAAuB,CAAC,wBAAwB,CAAC,CAAA;IACxD,WAAA,IAAA,iBAAM,EAAC,iDAAuB,CAAC,sBAAsB,CAAC,CAAA;qCADqC,mDAAwB;QAClC,mCAAsB;GARnG,yBAAyB,CAqBrC"}
@@ -1,12 +1,12 @@
1
1
  import { GtfsStopParser } from "../../../../../../../helpers/GtfsStopParser";
2
2
  import { IStopCisDto } from "../../../../../../../schema-definitions/ropid-gtfs/interfaces/IStopCisDto";
3
- import { IAwsNodeIdGtfsStopIdDto } from "../../../../../../../schema-definitions/ropid-gtfs/interfaces/IStopDto";
3
+ import { IStopCacheDto } from "../../../../../../../schema-definitions/ropid-gtfs/interfaces/IStopDto";
4
4
  import { RedisModel } from "@golemio/core/dist/integration-engine";
5
5
  export declare class GtfsStopsRedisRepository extends RedisModel {
6
6
  private gtfsStopParser;
7
7
  static NAMESPACE_PREFIX: string;
8
8
  constructor(gtfsStopParser: GtfsStopParser);
9
- refreshData(cisStops: Array<Pick<IStopCisDto, "id" | "cis">>, gtfsStops: IAwsNodeIdGtfsStopIdDto[]): Promise<void>;
9
+ refreshData(cisStops: Array<Pick<IStopCisDto, "id" | "cis">>, gtfsStops: IStopCacheDto[]): Promise<void>;
10
10
  private createNewCache;
11
11
  private deleteOldCache;
12
12
  }
@@ -47,7 +47,9 @@ let GtfsStopsRedisRepository = exports.GtfsStopsRedisRepository = GtfsStopsRedis
47
47
  cisToAswNode.set(stop.cis, this.gtfsStopParser.getAswNodeFromId(stop.id));
48
48
  }
49
49
  const aswNodeToGtfsStops = new Map();
50
+ const staticData = new Map();
50
51
  for (const stop of gtfsStops) {
52
+ staticData.set(stop.computed_cis_stop_id, JSON.stringify(stop));
51
53
  const nodeStopIds = aswNodeToGtfsStops.get(stop.asw_node_id) ?? [];
52
54
  if (nodeStopIds.length === 0) {
53
55
  aswNodeToGtfsStops.set(stop.asw_node_id, nodeStopIds);
@@ -56,6 +58,7 @@ let GtfsStopsRedisRepository = exports.GtfsStopsRedisRepository = GtfsStopsRedis
56
58
  }
57
59
  const setName = (0, node_crypto_1.randomBytes)(4).toString("hex");
58
60
  const pipeline = this.connection.pipeline();
61
+ pipeline.hset(`${this.prefix}:${setName}:staticData`, staticData);
59
62
  pipeline.hset(`${this.prefix}:${setName}:aswNodeToGtfsStops`, aswNodeToGtfsStops);
60
63
  pipeline.hset(`${this.prefix}:${setName}:cisToAswNode`, cisToAswNode);
61
64
  pipeline.publish(`${this.prefix}`, `${this.prefix}:${setName}`);
@@ -71,6 +74,7 @@ let GtfsStopsRedisRepository = exports.GtfsStopsRedisRepository = GtfsStopsRedis
71
74
  const pipeline = this.connection.pipeline();
72
75
  pipeline.expire(`${setName}:aswNodeToGtfsStops`, TTL_SECONDS_BEFORE_DELETE);
73
76
  pipeline.expire(`${setName}:cisToAswNode`, TTL_SECONDS_BEFORE_DELETE);
77
+ pipeline.expire(`${setName}:staticData`, TTL_SECONDS_BEFORE_DELETE);
74
78
  await pipeline.exec();
75
79
  }
76
80
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"GtfsStopsRedisRepository.js","sourceRoot":"","sources":["../../../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/data-access/cache/GtfsStopsRedisRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GtfsStopsRedisRepository.js","sourceRoot":"","sources":["../../../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/data-access/cache/GtfsStopsRedisRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gFAAyD;AACzD,wFAAqF;AAGrF,0FAA0E;AAC1E,8EAAmE;AACnE,6EAAwE;AACxE,iEAAwE;AACxE,6CAA0C;AAE1C,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAG9B,IAAM,wBAAwB,mEAA9B,MAAM,wBAAyB,SAAQ,+BAAU;IAGpD,YAAoE,cAA8B;QAC9F,KAAK,CAAC,0BAA0B,EAAE;YAC9B,wBAAwB,EAAE,KAAK;YAC/B,MAAM,EAAE,0BAAwB,CAAC,gBAAgB;SACpD,CAAC,CAAC;QAJ6D,mBAAc,GAAd,cAAc,CAAgB;IAKlG,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,QAAgD,EAAE,SAA0B;QACjG,IAAI;YACA,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;YACrF,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC/C,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;SACzC;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,6BAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC5E;IACL,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,QAAgD,EAAE,SAA0B;QACrG,IAAI;YACA,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC/C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;gBACzB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aAC7E;YAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAoB,CAAC;YACvD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC7C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;gBAC1B,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChE,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;gBACnE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC1B,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;iBACzD;gBACD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAClC;YAED,MAAM,OAAO,GAAG,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC5C,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,aAAa,EAAE,UAAU,CAAC,CAAC;YAClE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;YAClF,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,eAAe,EAAE,YAAY,CAAC,CAAC;YAEtE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC;YAChE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,gBAAgB,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC;YAC1E,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;SACzB;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,6BAAY,CAAC,uBAAuB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC/E;IACL,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAAe;QACxC,IAAI;YACA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC5C,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;YAC5E,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,eAAe,EAAE,yBAAyB,CAAC,CAAC;YACtE,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,aAAa,EAAE,yBAAyB,CAAC,CAAC;YACpE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;SACzB;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,6BAAY,CAAC,uBAAuB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC/E;IACL,CAAC;;AA7Da,yCAAgB,GAAG,mCAA2B,AAA9B,CAA+B;mCADpD,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAII,WAAA,IAAA,iBAAM,EAAC,iDAAuB,CAAC,cAAc,CAAC,CAAA;qCAAyB,+BAAc;GAHzF,wBAAwB,CA+DpC"}
@@ -4,13 +4,16 @@ import { StopFacade } from "../../service/facade/StopFacade";
4
4
  import { TransferFacade } from "../../service/facade/TransferFacade";
5
5
  import { RequestHandler } from "@golemio/core/dist/shared/express";
6
6
  import { TransferDepartureCacheTransformation } from "../../service/transformations/TransferDepartureCacheTransformation";
7
+ import { GtfsStopParser } from "../../../../helpers/GtfsStopParser";
7
8
  export declare class V4TransferBoardsController {
8
9
  private stopFacade;
9
10
  private infotextFacade;
10
11
  private transferFacade;
11
12
  private transformation;
13
+ private gtfsStopParser;
14
+ private static readonly NO_TRANSFERS;
12
15
  private readonly defaultTransferBoardsLimit;
13
- constructor(stopFacade: StopFacade, infotextFacade: InfotextFacade, transferFacade: TransferFacade, transformation: TransferDepartureCacheTransformation);
16
+ constructor(stopFacade: StopFacade, infotextFacade: InfotextFacade, transferFacade: TransferFacade, transformation: TransferDepartureCacheTransformation, gtfsStopParser: GtfsStopParser);
14
17
  getTransferBoardData: RequestHandler;
15
18
  private parseTransferBoardsParams;
16
19
  private getTimeFrom;
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  var __importDefault = (this && this.__importDefault) || function (mod) {
15
15
  return (mod && mod.__esModule) ? mod : { "default": mod };
16
16
  };
17
+ var V4TransferBoardsController_1;
17
18
  Object.defineProperty(exports, "__esModule", { value: true });
18
19
  exports.V4TransferBoardsController = void 0;
19
20
  const TransferBoardFilter_1 = require("../../helpers/TransferBoardFilter");
@@ -28,13 +29,15 @@ const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/mom
28
29
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
29
30
  const TransferDepartureCacheTransformation_1 = require("../../service/transformations/TransferDepartureCacheTransformation");
30
31
  const DepartureCalculator_1 = require("../../../shared/DepartureCalculator");
32
+ const GtfsStopParser_1 = require("../../../../helpers/GtfsStopParser");
31
33
  const DEFAULT_TRANSFER_BOARDS_LIMIT = 8;
32
- let V4TransferBoardsController = exports.V4TransferBoardsController = class V4TransferBoardsController {
33
- constructor(stopFacade, infotextFacade, transferFacade, transformation) {
34
+ let V4TransferBoardsController = exports.V4TransferBoardsController = V4TransferBoardsController_1 = class V4TransferBoardsController {
35
+ constructor(stopFacade, infotextFacade, transferFacade, transformation, gtfsStopParser) {
34
36
  this.stopFacade = stopFacade;
35
37
  this.infotextFacade = infotextFacade;
36
38
  this.transferFacade = transferFacade;
37
39
  this.transformation = transformation;
40
+ this.gtfsStopParser = gtfsStopParser;
38
41
  this.defaultTransferBoardsLimit = DEFAULT_TRANSFER_BOARDS_LIMIT;
39
42
  this.getTransferBoardData = async (req, res, next) => {
40
43
  const span = (0, trace_provider_1.createChildSpan)("V4TransferBoardsController.getTransferBoardData");
@@ -48,25 +51,29 @@ let V4TransferBoardsController = exports.V4TransferBoardsController = class V4Tr
48
51
  }
49
52
  //#region GTFS stops
50
53
  let stopIds = [];
51
- let transferCacheDto = undefined;
54
+ let transferCacheDto = null;
52
55
  let infotextsToInclude = [];
56
+ let stopsInfo = [];
57
+ let transferStop = undefined;
53
58
  try {
54
59
  if ("aswId" in params && typeof params.aswId === "string") {
55
60
  stopIds = await this.stopFacade.getStopIdsForTransferBoardsByAswId(params.aswId);
56
61
  //#region Transfer departures and infotexts
57
62
  if (stopIds.length === 0) {
58
- return res.status(404).json({
59
- departures: [],
60
- infotexts: [],
61
- });
63
+ return res.status(404).json(V4TransferBoardsController_1.NO_TRANSFERS);
64
+ }
65
+ stopsInfo = await this.stopFacade.getDetailDataFromCacheByStopId(stopIds);
66
+ const normalizedStopId = this.gtfsStopParser.normalizedStopId(params.aswId);
67
+ transferStop = stopsInfo.find((stop) => this.gtfsStopParser.normalizedStopId(stop.stop_id) === normalizedStopId);
68
+ if (!transferStop) {
69
+ return res.status(404).json(V4TransferBoardsController_1.NO_TRANSFERS);
62
70
  }
63
71
  try {
64
- const [transferCache, infotexts] = await Promise.all([
65
- this.transferFacade.getTransferCache(stopIds, params.limit, parseInt(params.vehicleRegistrationNumber ?? "0", 10), params.routeType, timeFrom || now),
66
- this.infotextFacade.getInfotextsCache(stopIds, now, timeFrom),
67
- ]);
68
- infotextsToInclude = infotexts;
72
+ const transferCache = await this.transferFacade.getTransferCache(transferStop.stop_id, stopIds, params.limit, parseInt(params.vehicleRegistrationNumber ?? "0", 10), params.routeType, timeFrom || now);
69
73
  transferCacheDto = transferCache;
74
+ timeFrom = transferCache.delayedTimeFrom;
75
+ const infotexts = await this.infotextFacade.getInfotextsCache(stopIds, now, timeFrom);
76
+ infotextsToInclude = infotexts;
70
77
  }
71
78
  catch (error) {
72
79
  span?.recordException(error);
@@ -90,20 +97,27 @@ let V4TransferBoardsController = exports.V4TransferBoardsController = class V4Tr
90
97
  throw error;
91
98
  }
92
99
  //#endregion
100
+ if (!transferCacheDto.transfers?.length || !transferStop) {
101
+ return res.status(404).json(V4TransferBoardsController_1.NO_TRANSFERS);
102
+ }
103
+ const transferStopName = transferStop.stop_name;
104
+ // filter out stops with different stop_name
105
+ const sameNameStopIds = Array.from(new Set(stopsInfo.filter((stop) => stop.stop_name === transferStopName).map((stop) => stop.stop_id)).values());
93
106
  // add predictedDeparture to transfers
94
107
  transferCacheDto.transfers = transferCacheDto.transfers.map((t) => {
95
108
  t.departure.predictedDepartureDate = DepartureCalculator_1.DepartureCalculator.getPredictedDepartureTime(new Date(t.departure.departure_datetime), t.departure.arrival_datetime ? new Date(t.departure.arrival_datetime) : null, t.position?.delay ?? null);
96
109
  t.departure.predictedDepartureTimestamp = t.departure.predictedDepartureDate.getTime();
97
110
  return t;
98
111
  });
112
+ transferCacheDto.transfers = TransferBoardFilter_1.TransferBoardFilter.minimalTransferTime(transferCacheDto.transfers, transferCacheDto.delayedTimeFrom);
113
+ transferCacheDto.transfers = TransferBoardFilter_1.TransferBoardFilter.sameStopNameTransfer(transferCacheDto.transfers, transferStop, sameNameStopIds);
99
114
  TransferBoardSorter_1.TransferBoardSorter.sortDepartures(transferCacheDto.transfers);
100
115
  const transformedData = this.transformation.transformArray(transferCacheDto.transfers);
101
- const filteredData = TransferBoardFilter_1.TransferBoardFilter.filterDepartures(transformedData, params.limit, this.getTimeFrom(transferCacheDto.currentTrip));
116
+ const filteredData = TransferBoardFilter_1.TransferBoardFilter.filterDepartures(transformedData, params.limit, transferCacheDto.delayedTimeFrom);
102
117
  const output = {
103
118
  // possibly share arrival_datetime of the current vehicle?
104
- platform_code: transferCacheDto.currentTrip.stopTime?.platform_code ??
105
- transferCacheDto.currentTrip.stopTime?.cis_stop_platform_code,
106
- stop_name: transferCacheDto.currentTrip.stopTime?.stop_name,
119
+ platform_code: transferStop.platform_code,
120
+ stop_name: transferStop.stop_name,
107
121
  departures: filteredData,
108
122
  infotexts: infotextsToInclude,
109
123
  icons: [],
@@ -141,15 +155,18 @@ let V4TransferBoardsController = exports.V4TransferBoardsController = class V4Tr
141
155
  return arrivalDate.getTime();
142
156
  }
143
157
  };
144
- exports.V4TransferBoardsController = V4TransferBoardsController = __decorate([
158
+ V4TransferBoardsController.NO_TRANSFERS = { departures: [], infotexts: [] };
159
+ exports.V4TransferBoardsController = V4TransferBoardsController = V4TransferBoardsController_1 = __decorate([
145
160
  (0, tsyringe_1.injectable)(),
146
161
  __param(0, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.StopFacade)),
147
162
  __param(1, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.InfotextFacade)),
148
163
  __param(2, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.TransferFacade)),
149
164
  __param(3, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.TransferDepartureCacheTransformation)),
165
+ __param(4, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.GtfsStopParser)),
150
166
  __metadata("design:paramtypes", [StopFacade_1.StopFacade,
151
167
  InfotextFacade_1.InfotextFacade,
152
168
  TransferFacade_1.TransferFacade,
153
- TransferDepartureCacheTransformation_1.TransferDepartureCacheTransformation])
169
+ TransferDepartureCacheTransformation_1.TransferDepartureCacheTransformation,
170
+ GtfsStopParser_1.GtfsStopParser])
154
171
  ], V4TransferBoardsController);
155
172
  //# sourceMappingURL=V4TransferBoardsController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"V4TransferBoardsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/controllers/v4/V4TransferBoardsController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"V4TransferBoardsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/controllers/v4/V4TransferBoardsController.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
- import { IV4TransferDepartureOutputDto } from "../index";
1
+ import { IStopCacheDto } from "../../../schema-definitions/ropid-gtfs/interfaces/IStopDto";
2
+ import { IDepartureWithPosition, IV4TransferDepartureOutputDto } from "../index";
2
3
  export declare class TransferBoardFilter {
3
- static filterDepartures(transfers: IV4TransferDepartureOutputDto[], limit: number, timeFrom: number): IV4TransferDepartureOutputDto[];
4
+ static filterDepartures(transfers: IV4TransferDepartureOutputDto[], limit: number, timeFrom: Date): IV4TransferDepartureOutputDto[];
5
+ static minimalTransferTime(transfers: IDepartureWithPosition[], delayedTimeFrom: Date): IDepartureWithPosition[];
6
+ static sameStopNameTransfer(transfers: IDepartureWithPosition[], currentStop: IStopCacheDto, allowedStopIds: string[]): IDepartureWithPosition[];
4
7
  private static isInRange;
5
8
  }
@@ -1,14 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TransferBoardFilter = void 0;
4
+ const RouteTypeEnums_1 = require("../../../helpers/RouteTypeEnums");
5
+ const DEFAULT_TRANSFER_TIME_MS = 60 * 1000;
6
+ const TRANSFER_TIMES_MS = new Map([
7
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.BUS, 60000],
8
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.EXT_MISCELLANEOUS, 60000],
9
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.FERRY, 120000],
10
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.FUNICULAR, 120000],
11
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.METRO, 120000],
12
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.TRAIN, 120000],
13
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.TRAM, 60000],
14
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.TROLLEYBUS, 60000],
15
+ ]);
16
+ const DIFFERENT_STOP_NAME_ALLOWED = new Map([
17
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.BUS, false],
18
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.EXT_MISCELLANEOUS, true],
19
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.FERRY, true],
20
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.FUNICULAR, true],
21
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.METRO, true],
22
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.TRAIN, true],
23
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.TRAM, false],
24
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.TROLLEYBUS, false],
25
+ ]);
4
26
  class TransferBoardFilter {
5
27
  static filterDepartures(transfers, limit, timeFrom) {
6
28
  const filteredDepartures = [];
29
+ const timeFromMs = timeFrom.getTime();
7
30
  for (const transfer of transfers) {
8
31
  if (filteredDepartures.length === limit) {
9
32
  break;
10
33
  }
11
- if (!this.isInRange(transfer, timeFrom)) {
34
+ if (!this.isInRange(transfer, timeFromMs)) {
12
35
  continue;
13
36
  }
14
37
  filteredDepartures.push(transfer);
@@ -16,6 +39,34 @@ class TransferBoardFilter {
16
39
  // Departures are already sorted so that metro ones are first
17
40
  return filteredDepartures;
18
41
  }
42
+ static minimalTransferTime(transfers, delayedTimeFrom) {
43
+ const arrivalTime = delayedTimeFrom.getTime();
44
+ return transfers.filter((t) => {
45
+ const transferTimeMs = TRANSFER_TIMES_MS.get(t.departure.route_type) || DEFAULT_TRANSFER_TIME_MS;
46
+ if (t.departure.predictedDepartureTimestamp == null) {
47
+ return false;
48
+ }
49
+ return arrivalTime + transferTimeMs < t.departure.predictedDepartureTimestamp;
50
+ });
51
+ }
52
+ static sameStopNameTransfer(transfers, currentStop, allowedStopIds) {
53
+ return transfers.filter((t) => {
54
+ if (t.departure.stop_id === currentStop.stop_id) {
55
+ return true;
56
+ }
57
+ if (DIFFERENT_STOP_NAME_ALLOWED.get(t.departure.route_type)) {
58
+ return true;
59
+ }
60
+ if (t.departure.trip_headsign === currentStop.stop_name) {
61
+ // buses going through Vysocanska capture a tram #31 going through
62
+ // same node, but with different stop-name = Nadrazi Vysocany
63
+ // but the tram just rides from Nadrazi Vysocany and ends at Vysocanska
64
+ // so it is not a transfer option really.
65
+ return false;
66
+ }
67
+ return allowedStopIds.includes(t.departure.stop_id);
68
+ });
69
+ }
19
70
  static isInRange(departure, timeFrom) {
20
71
  const timeRangeStart = timeFrom;
21
72
  // add one hour
@@ -1 +1 @@
1
- {"version":3,"file":"TransferBoardFilter.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/helpers/TransferBoardFilter.ts"],"names":[],"mappings":";;;AAEA,MAAa,mBAAmB;IACrB,MAAM,CAAC,gBAAgB,CAC1B,SAA0C,EAC1C,KAAa,EACb,QAAgB;QAEhB,MAAM,kBAAkB,GAAoC,EAAE,CAAC;QAE/D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAC9B,IAAI,kBAAkB,CAAC,MAAM,KAAK,KAAK,EAAE;gBACrC,MAAM;aACT;YACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;gBACrC,SAAS;aACZ;YACD,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACrC;QAED,6DAA6D;QAC7D,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IACO,MAAM,CAAC,SAAS,CAAC,SAAwC,EAAE,QAAgB;QAC/E,MAAM,cAAc,GAAG,QAAQ,CAAC;QAChC,eAAe;QACf,MAAM,YAAY,GAAG,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAE/C,MAAM,gBAAgB,GAClB,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7G,IAAI,KAAK,CAAC,gBAAgB,CAAC;YAAE,OAAO,KAAK,CAAC;QAE1C,+BAA+B;QAC/B,MAAM,aAAa,GAAG,cAAc,GAAG,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC;QAEpE,6CAA6C;QAC7C,OAAO,aAAa,IAAI,cAAc,IAAI,aAAa,IAAI,YAAY,CAAC;IAC5E,CAAC;CACJ;AApCD,kDAoCC"}
1
+ {"version":3,"file":"TransferBoardFilter.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/helpers/TransferBoardFilter.ts"],"names":[],"mappings":"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"}
@@ -113,7 +113,8 @@ export interface ITransferOutputDto {
113
113
  }
114
114
  export interface IV4TransferDto {
115
115
  transfers: IDepartureWithPosition[];
116
- currentTrip: ICurrentTrip;
116
+ delayedTimeFrom: Date;
117
+ plannedTimeFrom: Date;
117
118
  }
118
119
  export interface IDepartureWithPosition {
119
120
  departure: IPublicGtfsDepartureCacheDto & {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-gateway/pid/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAQA,4CAA0B;AAC1B,2CAAyB;AAgKzB,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":";;;;;;;;;;;;;;;;;AAQA,4CAA0B;AAC1B,2CAAyB;AAkKzB,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,5 +1,6 @@
1
1
  import { CisStopGroupRepository } from "../../../ropid-gtfs/data-access/CisStopGroupRepository";
2
2
  import { GtfsStopsRedisRepository } from "../../../ropid-gtfs/data-access/redis/GtfsStopsRedisRepository";
3
+ import { IStopCacheDto } from "../../../../schema-definitions/ropid-gtfs/interfaces/IStopDto";
3
4
  export declare class StopFacade {
4
5
  private cisStopGroupsRepository;
5
6
  private gtfsStopsRedisRepository;
@@ -14,5 +15,7 @@ export declare class StopFacade {
14
15
  * Retrieve ASW node ID for given ASW stop ID and then returns GTFS stop IDs for this ASW node
15
16
  */
16
17
  getStopIdsForTransferBoardsByAswId(aswId: string): Promise<string[]>;
18
+ getDetailDataFromCacheByStopId(stopId: string[]): Promise<IStopCacheDto[]>;
19
+ getDetailDataFromCacheByAswId(aswIds: string[]): Promise<IStopCacheDto[]>;
17
20
  private getStopIdsForTransferBoardsByAswNode;
18
21
  }
@@ -80,6 +80,13 @@ let StopFacade = exports.StopFacade = class StopFacade {
80
80
  async getStopIdsForTransferBoardsByAswId(aswId) {
81
81
  return await this.getStopIdsForTransferBoardsByAswNode(this.gtfsStopParser.getAswNodeFromId(aswId));
82
82
  }
83
+ async getDetailDataFromCacheByStopId(stopId) {
84
+ const aswIds = stopId.map((stopId) => this.gtfsStopParser.normalizedStopId(stopId));
85
+ return this.getDetailDataFromCacheByAswId(aswIds);
86
+ }
87
+ async getDetailDataFromCacheByAswId(aswIds) {
88
+ return await this.gtfsStopsRedisRepository.getGtfsStopsDetailsByAswId(aswIds);
89
+ }
83
90
  async getStopIdsForTransferBoardsByAswNode(aswNodeId) {
84
91
  try {
85
92
  return await this.gtfsStopsRedisRepository.getGtfsStopIdsByAswNode(aswNodeId);
@@ -1 +1 @@
1
- {"version":3,"file":"StopFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/service/facade/StopFacade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StopFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/service/facade/StopFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uEAAyD;AACzD,qDAAoD;AACpD,uDAA+C;AAC/C,mGAA2F;AAC3F,6GAAqG;AACrG,iEAAwE;AACxE,6EAA8F;AAIvF,IAAM,UAAU,wBAAhB,MAAM,UAAU;IAGnB,YAC+C,uBAAuD,EACrD,wBAA0D;QADpD,4BAAuB,GAAvB,uBAAuB,CAAwB;QAC7C,6BAAwB,GAAxB,wBAAwB,CAA0B;QAJ1F,mBAAc,GAAG,IAAI,+BAAc,EAAE,CAAC;IAKpD,CAAC;IAEG,KAAK,CAAC,2BAA2B,CAAC,KAAa;QAClD,uBAAuB;QACvB,IAAI,OAAe,CAAC;QACpB,IAAI;YACA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC7E,IAAI,WAAW,KAAK,IAAI,EAAE;gBACtB,OAAO,EAAE,CAAC;aACb;YAED,OAAO,GAAG,WAAW,CAAC;SACzB;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,KAAK,YAAY,qCAAoB,EAAE;gBACvC,MAAM,KAAK,CAAC;aACf;YAED,MAAM,IAAI,6BAAY,CAAC,kCAAkC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SACjG;QACD,YAAY;QAEZ,uBAAuB;QACvB,IAAI,OAAO,GAAa,EAAE,CAAC;QAC3B,IAAI;YACA,OAAO,GAAG,MAAM,eAAM,CAAC,aAAa,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;SACzE;QAAC,OAAO,KAAK,EAAE;YACZ,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;QACD,YAAY;QAEZ,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,kCAAkC,CAAC,KAAa;QACzD,IAAI;YACA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACnF,IAAI,SAAS,KAAK,IAAI,EAAE;gBACpB,OAAO,EAAE,CAAC;aACb;YACD,OAAO,MAAM,IAAI,CAAC,oCAAoC,CAAC,SAAS,CAAC,CAAC;SACrE;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,KAAK,YAAY,qCAAoB;gBAAE,MAAM,KAAK,CAAC;YACvD,MAAM,IAAI,6BAAY,CAAC,kCAAkC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SACjG;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,kCAAkC,CAAC,KAAa;QACzD,OAAO,MAAM,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IACxG,CAAC;IAEM,KAAK,CAAC,8BAA8B,CAAC,MAAgB;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,6BAA6B,CAAC,MAAgB;QACvD,OAAO,MAAM,IAAI,CAAC,wBAAwB,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAClF,CAAC;IAEO,KAAK,CAAC,oCAAoC,CAAC,SAAiB;QAChE,IAAI;YACA,OAAO,MAAM,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;SACjF;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,KAAK,YAAY,qCAAoB;gBAAE,MAAM,KAAK,CAAC;YACvD,MAAM,IAAI,6BAAY,CAAC,+BAA+B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SAC9F;IACL,CAAC;CACJ,CAAA;qBAnFY,UAAU;IADtB,IAAA,qBAAU,GAAE;IAKJ,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,sBAAsB,CAAC,CAAA;IACzC,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,wBAAwB,CAAC,CAAA;qCADgC,+CAAsB;QACnB,mDAAwB;GALlG,UAAU,CAmFtB"}
@@ -1,13 +1,13 @@
1
- import { IDepartureWithPosition, ITransferOutputDto, IV4TransferDto } from "../..";
2
1
  import { Moment } from "@golemio/core/dist/shared/moment-timezone";
3
- import { TransferDepartureTransformation } from "../transformations/TransferDepartureTransformation";
2
+ import { IDepartureWithPosition, ITransferOutputDto, IV4TransferDto } from "../..";
3
+ import { DeparturesRepository } from "../../data-access";
4
+ import { DelayComputationRepository } from "../../../public/data-access/redis/DelayComputationRepository";
4
5
  import { PublicGtfsDepartureRepository } from "../../../public/data-access/redis/PublicGtfsDepartureRepository";
5
- import { IPublicGtfsDepartureCacheDto } from "../../../../schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto";
6
+ import { PublicStopTimeRepository } from "../../../public/data-access/redis/PublicStopTimeRepository";
6
7
  import { PublicVehiclePositionsRepository } from "../../../public/data-access/redis/PublicVehiclePositionsRepository";
8
+ import { IPublicGtfsDepartureCacheDto } from "../../../../schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto";
7
9
  import { IPublicApiCacheDto } from "../../../../schema-definitions/vehicle-positions/redis/interfaces/IPublicApiCacheDto";
8
- import { PublicStopTimeRepository } from "../../../public/data-access/redis/PublicStopTimeRepository";
9
- import { DelayComputationRepository } from "../../../public/data-access/redis/DelayComputationRepository";
10
- import { DeparturesRepository } from "../../data-access";
10
+ import { TransferDepartureTransformation } from "../transformations/TransferDepartureTransformation";
11
11
  export declare class TransferFacade {
12
12
  private publicDepartureRepository;
13
13
  private departuresRepository;
@@ -15,11 +15,17 @@ export declare class TransferFacade {
15
15
  private tripRepository;
16
16
  private stopTimeRepository;
17
17
  private delayComputationRepository;
18
+ private static readonly MINUTE_AS_MS;
19
+ private static readonly OPEN_MINUTES_IN_PAST;
20
+ private static readonly OPEN_MINUTES_IN_PAST_MS;
18
21
  constructor(publicDepartureRepository: PublicGtfsDepartureRepository, departuresRepository: DeparturesRepository, departureTransformation: TransferDepartureTransformation, tripRepository: PublicVehiclePositionsRepository, stopTimeRepository: PublicStopTimeRepository, delayComputationRepository: DelayComputationRepository);
19
22
  getTransferDepartures(stopIds: string[], tripNumber: string | null, currentMoment: Moment, minutesOffset: number, timeZone?: string): Promise<ITransferOutputDto[]>;
20
- getTransferCache(stopIds: string[], limit: number, reqNumber?: number, vehicleType?: number, timeFrom?: Date): Promise<IV4TransferDto>;
21
- private findFallbackDeparture;
22
- processMultiplePositionsForDeparturesAtOnce(departures: IPublicGtfsDepartureCacheDto[], positionsByTrip: Map<string, IPublicApiCacheDto[]>, stopIds: string[]): Promise<IDepartureWithPosition[]>;
23
+ private static isDifferentLine;
24
+ private calculateTimeFrom;
25
+ getTransferCache(stopId: string, stopIds: string[], limit: number, reqNumber: number, vehicleType: number, timeFrom: Date): Promise<IV4TransferDto>;
26
+ private static findStopTimeByStopId;
27
+ private findVehicleArrival;
28
+ processMultiplePositionsForDeparturesAtOnce(departures: IPublicGtfsDepartureCacheDto[], positionsByTrip: Map<string, IPublicApiCacheDto[]>): Promise<IDepartureWithPosition[]>;
23
29
  /**
24
30
  * Fallback options as defined by ROPID
25
31
  */
@@ -14,26 +14,27 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  var __importDefault = (this && this.__importDefault) || function (mod) {
15
15
  return (mod && mod.__esModule) ? mod : { "default": mod };
16
16
  };
17
+ var TransferFacade_1;
17
18
  Object.defineProperty(exports, "__esModule", { value: true });
18
19
  exports.TransferFacade = void 0;
20
+ const monitoring_1 = require("@golemio/core/dist/monitoring");
21
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
22
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
23
+ const DateTimeUtils_1 = require("../../../../helpers/DateTimeUtils");
24
+ const RouteTypeEnums_1 = require("../../../../helpers/RouteTypeEnums");
19
25
  const pid_1 = require("../..");
26
+ const data_access_1 = require("../../data-access");
20
27
  const OgPidToken_1 = require("../../ioc/OgPidToken");
21
28
  const IPIDDepartureQueryOptions_1 = __importDefault(require("../../models/helpers/interfaces/IPIDDepartureQueryOptions"));
22
- const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
23
- const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
24
- const TransferDepartureTransformation_1 = require("../transformations/TransferDepartureTransformation");
29
+ const PIDDepartureModel_1 = __importDefault(require("../../models/helpers/PIDDepartureModel"));
30
+ const DelayComputationRepository_1 = require("../../../public/data-access/redis/DelayComputationRepository");
25
31
  const PublicGtfsDepartureRepository_1 = require("../../../public/data-access/redis/PublicGtfsDepartureRepository");
26
- const PublicVehiclePositionsRepository_1 = require("../../../public/data-access/redis/PublicVehiclePositionsRepository");
27
32
  const PublicStopTimeRepository_1 = require("../../../public/data-access/redis/PublicStopTimeRepository");
28
- const DelayComputationRepository_1 = require("../../../public/data-access/redis/DelayComputationRepository");
29
- const monitoring_1 = require("@golemio/core/dist/monitoring");
30
- const PIDDepartureModel_1 = __importDefault(require("../../models/helpers/PIDDepartureModel"));
33
+ const PublicVehiclePositionsRepository_1 = require("../../../public/data-access/redis/PublicVehiclePositionsRepository");
31
34
  const shared_1 = require("../../../shared");
32
- const data_access_1 = require("../../data-access");
33
35
  const const_1 = require("../../../../const");
34
- const DateTimeUtils_1 = require("../../../../helpers/DateTimeUtils");
35
- const RouteTypeEnums_1 = require("../../../../helpers/RouteTypeEnums");
36
- let TransferFacade = exports.TransferFacade = class TransferFacade {
36
+ const TransferDepartureTransformation_1 = require("../transformations/TransferDepartureTransformation");
37
+ let TransferFacade = exports.TransferFacade = TransferFacade_1 = class TransferFacade {
37
38
  constructor(publicDepartureRepository, departuresRepository, departureTransformation, tripRepository, stopTimeRepository, delayComputationRepository) {
38
39
  this.publicDepartureRepository = publicDepartureRepository;
39
40
  this.departuresRepository = departuresRepository;
@@ -77,14 +78,60 @@ let TransferFacade = exports.TransferFacade = class TransferFacade {
77
78
  }
78
79
  return transferDepartures;
79
80
  }
80
- async getTransferCache(stopIds, limit, reqNumber, vehicleType, timeFrom) {
81
+ static isDifferentLine(departure, position) {
82
+ if (departure.trip_id === position.gtfs_trip_id) {
83
+ return false; // same trip = remove itself
84
+ }
85
+ if (departure.route_type !== position.route_type) {
86
+ return true; // different means of transport, definitely different line
87
+ }
88
+ // filter out same line
89
+ return departure.route_short_name !== position.gtfs_route_short_name;
90
+ }
91
+ calculateTimeFrom(currentArrival, currentPosition, delayedTimeFrom, plannedTimeFrom) {
92
+ const arrivalDate = new Date(currentArrival.arrival_datetime);
93
+ // arrival before expected time (negative number) is taken as 0 delay
94
+ // arrival after expected time (positive number) is taken as is
95
+ const delayOnArrivalMs = Math.max(currentPosition.delay ?? 0, 0) * 1000;
96
+ delayedTimeFrom.setTime(arrivalDate.getTime() + delayOnArrivalMs);
97
+ plannedTimeFrom.setTime(arrivalDate.getTime());
98
+ }
99
+ async getTransferCache(stopId, stopIds, limit, reqNumber, vehicleType, timeFrom) {
81
100
  const span = (0, monitoring_1.createChildSpan)(`Departures.getTransferCache`);
82
101
  span?.setAttributes({ stopIds, limit, reqNumber, vehicleType });
102
+ let delayedTimeFrom = new Date(timeFrom.getTime());
103
+ let plannedTimeFrom = new Date(timeFrom.getTime());
104
+ let currentArrival = null;
83
105
  try {
106
+ // 1. find the vehicle
107
+ const currentPosition = await this.tripRepository.getDetailedVehiclePosition(`service-${vehicleType}-${reqNumber}`);
108
+ if (currentPosition) {
109
+ // vehicle is on the map
110
+ // 2. find its arrival to the stop-id
111
+ currentArrival = await this.findVehicleArrival(currentPosition, stopIds, stopId);
112
+ }
113
+ if (currentPosition && currentArrival) {
114
+ this.calculateTimeFrom(currentArrival, currentPosition, delayedTimeFrom, plannedTimeFrom);
115
+ }
116
+ else {
117
+ // Vehicle does not ride into such stop-ids, or vehicle does not have Position
118
+ return {
119
+ transfers: [],
120
+ delayedTimeFrom,
121
+ plannedTimeFrom,
122
+ };
123
+ }
124
+ // timeFrom in query can be too early, minimum is the real arrival of the vehicle
125
+ if (timeFrom.getTime() > delayedTimeFrom.getTime()) {
126
+ delayedTimeFrom = new Date(timeFrom);
127
+ plannedTimeFrom = new Date(timeFrom);
128
+ }
129
+ const delayMinutes = Math.abs(Math.floor((delayedTimeFrom.getTime() - plannedTimeFrom.getTime()) / TransferFacade_1.MINUTE_AS_MS));
84
130
  let departureEntities = [];
85
131
  try {
86
- departureEntities = await this.publicDepartureRepository.getPublicGtfsDepartureCache(stopIds, 60, // look forward up-to 1 hour, see JIS Transferboards Design Document
87
- timeFrom, limit * 2 // should be (at least) 2x the limit from request
132
+ // 3. find departures from all stop_ids in Node
133
+ // look forward 1 hour (add delay + open minutes), see JIS Transferboards Design Document
134
+ departureEntities = await this.publicDepartureRepository.getPublicGtfsDepartureCache(stopIds, 60 + TransferFacade_1.OPEN_MINUTES_IN_PAST + delayMinutes, new Date(plannedTimeFrom.getTime() - TransferFacade_1.OPEN_MINUTES_IN_PAST_MS), Math.max(10, limit * 5) // should be (at least 10) 5x the limit from request
88
135
  );
89
136
  }
90
137
  catch (error) {
@@ -94,40 +141,29 @@ let TransferFacade = exports.TransferFacade = class TransferFacade {
94
141
  }
95
142
  throw new golemio_errors_1.GeneralError("Failed to publicGtfsDepartureCache", this.constructor.name, error, 500);
96
143
  }
97
- const currentPosition = await this.tripRepository.getDetailedVehiclePosition(`service-${vehicleType}-${reqNumber}`);
98
- let currentDeparture = null;
99
- let currentStopTime = null;
100
- if (currentPosition) {
101
- const departureIndex = departureEntities.findIndex((departure) => {
102
- return departure.trip_id === currentPosition.gtfs_trip_id;
103
- });
104
- // Remove currentDeparture from departureEntities
105
- if (departureIndex !== -1) {
106
- currentDeparture = departureEntities.splice(departureIndex, 1)[0];
107
- }
108
- const stopTimes = (await this.stopTimeRepository.getPublicStopTimeCache(currentPosition.vehicle_id, currentPosition.gtfs_trip_id)) || [];
109
- currentStopTime = stopTimes.find((stopTime) => stopIds.includes(stopTime.stop_id)) ?? null;
110
- }
111
- if (currentPosition && !currentDeparture) {
112
- // Important Fallback for last-stop of a trip
113
- // because there is no Departure from such last-stop
114
- currentDeparture = await this.findFallbackDeparture(currentPosition, stopIds);
115
- }
144
+ // Remove current line (and trip) from departureEntities
145
+ departureEntities = departureEntities.filter((departure) => TransferFacade_1.isDifferentLine(departure, currentPosition));
116
146
  // to be able to load future trips of Before_Track positioned vehicle
117
147
  const omitFutureTrips = false;
118
- // One trip might go through more Stops in one Node
119
- const uniqueDeparturesTripIds = Array.from(new Set(departureEntities.map((departure) => departure.trip_id)));
148
+ const seenTripIds = new Map();
149
+ // One trip might go through more Stops in one Node (Nadrazi Vysocany)
150
+ // filter out departures of already seen trip
151
+ departureEntities = departureEntities.filter((departure) => {
152
+ if (seenTripIds.has(departure.trip_id)) {
153
+ return false;
154
+ }
155
+ seenTripIds.set(departure.trip_id, true);
156
+ return true;
157
+ });
158
+ const uniqueDeparturesTripIds = Array.from(seenTripIds.keys());
120
159
  const positionsByTrip = await this.tripRepository.getAllVehiclePositionsForMultipleTrips(uniqueDeparturesTripIds, omitFutureTrips);
121
160
  let transfers = [];
122
- const moreDepartures = await this.processMultiplePositionsForDeparturesAtOnce(departureEntities, positionsByTrip, stopIds);
161
+ const moreDepartures = await this.processMultiplePositionsForDeparturesAtOnce(departureEntities, positionsByTrip);
123
162
  transfers.push(...moreDepartures);
124
163
  return {
125
- currentTrip: {
126
- departure: currentDeparture,
127
- position: currentPosition,
128
- stopTime: currentStopTime,
129
- },
130
164
  transfers,
165
+ delayedTimeFrom,
166
+ plannedTimeFrom,
131
167
  };
132
168
  }
133
169
  catch (error) {
@@ -141,16 +177,24 @@ let TransferFacade = exports.TransferFacade = class TransferFacade {
141
177
  span?.end();
142
178
  }
143
179
  }
144
- async findFallbackDeparture(currentPosition, stopIds) {
180
+ static findStopTimeByStopId(stopTimes, stopIds) {
181
+ return stopTimes.find((stopTime) => stopIds.includes(stopTime.stop_id)) || null;
182
+ }
183
+ async findVehicleArrival(currentPosition, stopIds, stopId) {
145
184
  const stopTimes = (await this.delayComputationRepository.getDelayComputationCacheProperty(currentPosition.gtfs_trip_id, "stop_times"));
146
185
  if (!stopTimes?.stop_times?.length) {
147
186
  return null;
148
187
  }
149
- const departureAtStopId = stopTimes.stop_times.find((stopTime) => stopIds.includes(stopTime.stop_id)) || null;
188
+ // It is possible (based on incoming stop_ids), we won't find departure
189
+ // for this vehicle directly on this stopId...
190
+ let departureAtStopId = TransferFacade_1.findStopTimeByStopId(stopTimes.stop_times, [stopId]);
191
+ // But it can be in the whole Node = iterate through all stop_ids then.
192
+ departureAtStopId ??= TransferFacade_1.findStopTimeByStopId(stopTimes.stop_times, stopIds);
150
193
  if (departureAtStopId) {
151
194
  const arrivalDate = DateTimeUtils_1.DateTimeUtils.getStopDateTimeForTripOrigin(departureAtStopId.arrival_time_seconds, currentPosition.detailed_info.origin_timestamp);
152
195
  const departureDate = DateTimeUtils_1.DateTimeUtils.getStopDateTimeForTripOrigin(departureAtStopId.departure_time_seconds, currentPosition.detailed_info.origin_timestamp);
153
196
  return {
197
+ stop_name: departureAtStopId.stop.stop_name,
154
198
  stop_id: departureAtStopId.stop_id,
155
199
  departure_datetime: departureDate.toISOString(),
156
200
  arrival_datetime: arrivalDate.toISOString(),
@@ -164,7 +208,7 @@ let TransferFacade = exports.TransferFacade = class TransferFacade {
164
208
  }
165
209
  return null;
166
210
  }
167
- async processMultiplePositionsForDeparturesAtOnce(departures, positionsByTrip, stopIds) {
211
+ async processMultiplePositionsForDeparturesAtOnce(departures, positionsByTrip) {
168
212
  const outputGroup = [];
169
213
  const trainIdTripIdTuples = [];
170
214
  const trainDepartures = new Map();
@@ -200,7 +244,7 @@ let TransferFacade = exports.TransferFacade = class TransferFacade {
200
244
  for (const [tripId, stopTimeCache] of Array.from(stopTimeCachesByTripId.entries())) {
201
245
  const departure = trainDepartures.get(tripId);
202
246
  const position = positionsByTrip.get(tripId)[0];
203
- const stopTime = stopTimeCache.find((stopTime) => stopIds.includes(stopTime.stop_id));
247
+ const stopTime = stopTimeCache.find((stopTime) => departure.stop_id === stopTime.stop_id);
204
248
  outputGroup.push({
205
249
  departure,
206
250
  position: position || null,
@@ -227,7 +271,10 @@ let TransferFacade = exports.TransferFacade = class TransferFacade {
227
271
  };
228
272
  }
229
273
  };
230
- exports.TransferFacade = TransferFacade = __decorate([
274
+ TransferFacade.MINUTE_AS_MS = 60 * 1000;
275
+ TransferFacade.OPEN_MINUTES_IN_PAST = 15;
276
+ TransferFacade.OPEN_MINUTES_IN_PAST_MS = TransferFacade_1.OPEN_MINUTES_IN_PAST * TransferFacade_1.MINUTE_AS_MS;
277
+ exports.TransferFacade = TransferFacade = TransferFacade_1 = __decorate([
231
278
  (0, tsyringe_1.injectable)(),
232
279
  __param(0, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.PublicGtfsDepartureRepository)),
233
280
  __param(1, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.DeparturesRepository)),
@@ -1 +1 @@
1
- {"version":3,"file":"TransferFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/service/facade/TransferFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,+BASiB;AACjB,qDAAoD;AACpD,0HAAoG;AACpG,6EAA8F;AAE9F,iEAAwE;AACxE,wGAAqG;AACrG,mHAA2G;AAG3G,yHAAiH;AAGjH,yGAAiG;AACjG,6GAAqG;AACrG,8DAAgE;AAChE,+FAA0E;AAC1E,4CAA8C;AAC9C,mDAA2D;AAC3D,6CAA8C;AAE9C,qEAAuD;AACvD,uEAA4D;AAGrD,IAAM,cAAc,4BAApB,MAAM,cAAc;IACvB,YAC8D,yBAAwD,EACjE,oBAA0C,EAC/B,uBAAwD,EACvD,cAAgD,EACxD,kBAA4C,EAC1C,0BAAsD;QALnD,8BAAyB,GAAzB,yBAAyB,CAA+B;QACjE,yBAAoB,GAApB,oBAAoB,CAAsB;QAC/B,4BAAuB,GAAvB,uBAAuB,CAAiC;QACvD,mBAAc,GAAd,cAAc,CAAkC;QACxD,uBAAkB,GAAlB,kBAAkB,CAA0B;QAC1C,+BAA0B,GAA1B,0BAA0B,CAA4B;IAC9G,CAAC;IAEG,KAAK,CAAC,qBAAqB,CAC9B,OAAiB,EACjB,UAAyB,EACzB,aAAqB,EACrB,aAAqB,EACrB,QAAQ,GAAG,yBAAgB,CAAC,QAAQ;QAEpC,IAAI,iBAAiB,GAAyB,EAAE,CAAC;QACjD,IAAI;YACA,iBAAiB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC;gBACtE,QAAQ,EAAE,OAAO;gBACjB,aAAa;gBACb,aAAa;aAChB,CAAC,CAAC;SACN;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,KAAK,YAAY,qCAAoB,EAAE;gBACvC,MAAM,KAAK,CAAC;aACf;YAED,MAAM,IAAI,6BAAY,CAAC,wCAAwC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SACvG;QAED,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,OAAO,EAAE,CAAC;SACb;QAED,IAAI,kBAAkB,GAAyB,EAAE,CAAC;QAClD,IAAI;YACA,MAAM,mBAAmB,GAAG,IAAI,2BAAkB,CAAC,iBAAiB,EAAE;gBAClE,GAAG,IAAI,CAAC,cAAc;gBACtB,QAAQ,EAAE,QAAQ;gBAClB,UAAU;aACb,CAAC,CAAC,yBAAyB,EAAE,CAAC;YAE/B,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;SACzF;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,KAAK,YAAY,qCAAoB,EAAE;gBACvC,MAAM,KAAK,CAAC;aACf;YACD,MAAM,IAAI,6BAAY,CAAC,uCAAuC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SACtG;QAED,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,gBAAgB,CACzB,OAAiB,EACjB,KAAa,EACb,SAAkB,EAClB,WAAoB,EACpB,QAAe;QAEf,MAAM,IAAI,GAAG,IAAA,4BAAe,EAAC,6BAA6B,CAAC,CAAC;QAC5D,IAAI,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAgB,CAAC,CAAC;QAC9E,IAAI;YACA,IAAI,iBAAiB,GAAmC,EAAE,CAAC;YAC3D,IAAI;gBACA,iBAAiB,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,2BAA2B,CAChF,OAAO,EACP,EAAE,EAAE,oEAAoE;gBACxE,QAAQ,EACR,KAAK,GAAG,CAAC,CAAC,iDAAiD;iBAC9D,CAAC;aACL;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC7B,IAAI,KAAK,YAAY,qCAAoB,EAAE;oBACvC,MAAM,KAAK,CAAC;iBACf;gBACD,MAAM,IAAI,6BAAY,CAAC,oCAAoC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;aACnG;YAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,0BAA0B,CAAC,WAAW,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC;YACpH,IAAI,gBAAgB,GAAwC,IAAI,CAAC;YACjE,IAAI,eAAe,GAAmC,IAAI,CAAC;YAC3D,IAAI,eAAe,EAAE;gBACjB,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC7D,OAAO,SAAS,CAAC,OAAO,KAAK,eAAe,CAAC,YAAY,CAAC;gBAC9D,CAAC,CAAC,CAAC;gBAEH,iDAAiD;gBACjD,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;oBACvB,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACrE;gBAED,MAAM,SAAS,GACX,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CACjD,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,YAAY,CAC/B,CAAC,IAAI,EAAE,CAAC;gBACb,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;aAC9F;YAED,IAAI,eAAe,IAAI,CAAC,gBAAgB,EAAE;gBACtC,6CAA6C;gBAC7C,oDAAoD;gBACpD,gBAAgB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;aACjF;YAED,qEAAqE;YACrE,MAAM,eAAe,GAAG,KAAK,CAAC;YAE9B,mDAAmD;YACnD,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAE7G,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,sCAAsC,CACpF,uBAAuB,EACvB,eAAe,CAClB,CAAC;YAEF,IAAI,SAAS,GAA6B,EAAE,CAAC;YAE7C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,2CAA2C,CACzE,iBAAiB,EACjB,eAAe,EACf,OAAO,CACV,CAAC;YAEF,SAAS,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;YAElC,OAAO;gBACH,WAAW,EAAE;oBACT,SAAS,EAAE,gBAAgB;oBAC3B,QAAQ,EAAE,eAAe;oBACzB,QAAQ,EAAE,eAAe;iBAC5B;gBACD,SAAS;aACZ,CAAC;SACL;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,KAAK,YAAY,qCAAoB,EAAE;gBACvC,MAAM,KAAK,CAAC;aACf;YACD,MAAM,IAAI,6BAAY,CAAC,2BAA2B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SAC1F;gBAAS;YACN,IAAI,EAAE,GAAG,EAAE,CAAC;SACf;IACL,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAC/B,eAAmC,EACnC,OAAiB;QAEjB,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,0BAA0B,CAAC,gCAAgC,CACrF,eAAe,CAAC,YAAY,EAC5B,YAAY,CACf,CAAuC,CAAC;QAEzC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE;YAChC,OAAO,IAAI,CAAC;SACf;QAED,MAAM,iBAAiB,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAmB,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;QAEzH,IAAI,iBAAiB,EAAE;YACnB,MAAM,WAAW,GAAS,6BAAa,CAAC,4BAA4B,CAChE,iBAAiB,CAAC,oBAAoB,EACtC,eAAe,CAAC,aAAa,CAAC,gBAAgB,CACjD,CAAC;YACF,MAAM,aAAa,GAAS,6BAAa,CAAC,4BAA4B,CAClE,iBAAiB,CAAC,sBAAsB,EACxC,eAAe,CAAC,aAAa,CAAC,gBAAgB,CACjD,CAAC;YAEF,OAAO;gBACH,OAAO,EAAE,iBAAiB,CAAC,OAAO;gBAClC,kBAAkB,EAAE,aAAa,CAAC,WAAW,EAAE;gBAC/C,gBAAgB,EAAE,WAAW,CAAC,WAAW,EAAE;gBAC3C,gBAAgB,EAAE,eAAe,CAAC,qBAAqB;gBACvD,UAAU,EAAE,eAAe,CAAC,UAAU;gBACtC,OAAO,EAAE,eAAe,CAAC,YAAY;gBACrC,aAAa,EAAE,iBAAiB,CAAC,aAAa;gBAC9C,aAAa,EAAE,IAAI;gBACnB,aAAa,EAAE,eAAe,CAAC,aAAa,CAAC,aAAc;aAC9B,CAAC;SACrC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,2CAA2C,CACpD,UAA0C,EAC1C,eAAkD,EAClD,OAAiB;QAEjB,MAAM,WAAW,GAA6B,EAAE,CAAC;QACjD,MAAM,mBAAmB,GAA4B,EAAE,CAAC;QACxD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAwC,CAAC;QAExE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAChC,0DAA0D;YAC1D,MAAM,SAAS,GAAyB,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACrF,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;gBACnB,WAAW,CAAC,IAAI,CAAC;oBACb,SAAS;oBACT,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,IAAI;iBACjB,CAAC,CAAC;gBACH,SAAS;aACZ;YAED,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,KAAK,yBAAiB,CAAC,QAAQ,CAAC,CAAC;YAEpG,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE;gBAC9B,IAAI,SAAS,CAAC,aAAa,IAAI,IAAI,IAAI,SAAS,CAAC,UAAU,KAAK,kCAAiB,CAAC,KAAK,EAAE;oBACrF,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAClD,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC9D,SAAS;iBACZ;gBAED,gFAAgF;gBAChF,WAAW,CAAC,IAAI,CAAC;oBACb,SAAS;oBACT,QAAQ,EAAE,GAAG;oBACb,QAAQ,EAAE,IAAI;iBACjB,CAAC,CAAC;aACN;SACJ;QAED,MAAM,sBAAsB,GAA2C,CAAC,mBAAmB,CAAC,MAAM;YAC9F,CAAC,CAAC,IAAI,GAAG,EAAE;YACX,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,CAAC;QAErF,KAAK,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC,EAAE;YAChF,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC,CAAC;YAEjD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAEtF,WAAW,CAAC,IAAI,CAAC;gBACb,SAAS;gBACT,QAAQ,EAAE,QAAQ,IAAI,IAAI;gBAC1B,QAAQ,EAAE,QAAQ,IAAI,IAAI;aAC7B,CAAC,CAAC;SACN;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAY,cAAc;QACtB,OAAO;YACH,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,mBAAa,CAAC,UAAU;YAC9B,KAAK,EAAE,oBAAc,CAAC,IAAI;YAC1B,MAAM,EAAE,qBAAe,CAAC,6BAA6B;YACrD,IAAI,EAAE,CAAC,mBAAa,CAAC,QAAQ,CAAC;YAC9B,oBAAoB,EAAE,EAAE;YACxB,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI,EAAE,2BAA2B;SACpD,CAAC;IACN,CAAC;CACJ,CAAA;yBAzQY,cAAc;IAD1B,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,6BAA6B,CAAC,CAAA;IAChD,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,oBAAoB,CAAC,CAAA;IACvC,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,+BAA+B,CAAC,CAAA;IAClD,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,gCAAgC,CAAC,CAAA;IACnD,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,wBAAwB,CAAC,CAAA;IAC3C,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,0BAA0B,CAAC,CAAA;qCALuC,6DAA6B;QAC3C,kCAAoB;QACN,iEAA+B;QACvC,mEAAgC;QACpC,mDAAwB;QACd,uDAA0B;GAPxG,cAAc,CAyQ1B"}
1
+ {"version":3,"file":"TransferFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/service/facade/TransferFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,8DAAgE;AAChE,6EAA8F;AAE9F,iEAAwE;AAExE,qEAAuD;AACvD,uEAA4D;AAC5D,+BASiB;AACjB,mDAA2D;AAC3D,qDAAoD;AACpD,0HAAoG;AACpG,+FAA0E;AAC1E,6GAAqG;AACrG,mHAA2G;AAC3G,yGAAiG;AACjG,yHAAiH;AACjH,4CAA8C;AAM9C,6CAA8C;AAC9C,wGAAqG;AAK9F,IAAM,cAAc,+CAApB,MAAM,cAAc;IAKvB,YAC8D,yBAAwD,EACjE,oBAA0C,EAC/B,uBAAwD,EACvD,cAAgD,EACxD,kBAA4C,EAC1C,0BAAsD;QALnD,8BAAyB,GAAzB,yBAAyB,CAA+B;QACjE,yBAAoB,GAApB,oBAAoB,CAAsB;QAC/B,4BAAuB,GAAvB,uBAAuB,CAAiC;QACvD,mBAAc,GAAd,cAAc,CAAkC;QACxD,uBAAkB,GAAlB,kBAAkB,CAA0B;QAC1C,+BAA0B,GAA1B,0BAA0B,CAA4B;IAC9G,CAAC;IAEG,KAAK,CAAC,qBAAqB,CAC9B,OAAiB,EACjB,UAAyB,EACzB,aAAqB,EACrB,aAAqB,EACrB,QAAQ,GAAG,yBAAgB,CAAC,QAAQ;QAEpC,IAAI,iBAAiB,GAAyB,EAAE,CAAC;QACjD,IAAI;YACA,iBAAiB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC;gBACtE,QAAQ,EAAE,OAAO;gBACjB,aAAa;gBACb,aAAa;aAChB,CAAC,CAAC;SACN;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,KAAK,YAAY,qCAAoB,EAAE;gBACvC,MAAM,KAAK,CAAC;aACf;YAED,MAAM,IAAI,6BAAY,CAAC,wCAAwC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SACvG;QAED,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,OAAO,EAAE,CAAC;SACb;QAED,IAAI,kBAAkB,GAAyB,EAAE,CAAC;QAClD,IAAI;YACA,MAAM,mBAAmB,GAAG,IAAI,2BAAkB,CAAC,iBAAiB,EAAE;gBAClE,GAAG,IAAI,CAAC,cAAc;gBACtB,QAAQ,EAAE,QAAQ;gBAClB,UAAU;aACb,CAAC,CAAC,yBAAyB,EAAE,CAAC;YAE/B,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;SACzF;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,KAAK,YAAY,qCAAoB,EAAE;gBACvC,MAAM,KAAK,CAAC;aACf;YACD,MAAM,IAAI,6BAAY,CAAC,uCAAuC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SACtG;QAED,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,SAAuC,EAAE,QAA4B;QAChG,IAAI,SAAS,CAAC,OAAO,KAAK,QAAQ,CAAC,YAAY,EAAE;YAC7C,OAAO,KAAK,CAAC,CAAC,4BAA4B;SAC7C;QACD,IAAI,SAAS,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,EAAE;YAC9C,OAAO,IAAI,CAAC,CAAC,0DAA0D;SAC1E;QACD,uBAAuB;QACvB,OAAO,SAAS,CAAC,gBAAgB,KAAK,QAAQ,CAAC,qBAAqB,CAAC;IACzE,CAAC;IAEO,iBAAiB,CACrB,cAAqD,EACrD,eAAmC,EACnC,eAAqB,EACrB,eAAqB;QAErB,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,gBAA0B,CAAC,CAAC;QACxE,qEAAqE;QACrE,+DAA+D;QAC/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;QACxE,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC,CAAC;QAClE,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,gBAAgB,CACzB,MAAc,EACd,OAAiB,EACjB,KAAa,EACb,SAAiB,EACjB,WAAmB,EACnB,QAAc;QAEd,MAAM,IAAI,GAAG,IAAA,4BAAe,EAAC,6BAA6B,CAAC,CAAC;QAC5D,IAAI,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAgB,CAAC,CAAC;QAE9E,IAAI,eAAe,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,IAAI,eAAe,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAEnD,IAAI,cAAc,GAAiD,IAAI,CAAC;QAExE,IAAI;YACA,sBAAsB;YACtB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,0BAA0B,CAAC,WAAW,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC;YAEpH,IAAI,eAAe,EAAE;gBACjB,wBAAwB;gBACxB,qCAAqC;gBACrC,cAAc,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;aACpF;YAED,IAAI,eAAe,IAAI,cAAc,EAAE;gBACnC,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;aAC7F;iBAAM;gBACH,8EAA8E;gBAC9E,OAAO;oBACH,SAAS,EAAE,EAAE;oBACb,eAAe;oBACf,eAAe;iBACA,CAAC;aACvB;YAED,iFAAiF;YACjF,IAAI,QAAQ,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC,OAAO,EAAE,EAAE;gBAChD,eAAe,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrC,eAAe,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;aACxC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CACzB,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,GAAG,gBAAc,CAAC,YAAY,CAAC,CACpG,CAAC;YAEF,IAAI,iBAAiB,GAAmC,EAAE,CAAC;YAC3D,IAAI;gBACA,+CAA+C;gBAC/C,yFAAyF;gBACzF,iBAAiB,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,2BAA2B,CAChF,OAAO,EACP,EAAE,GAAG,gBAAc,CAAC,oBAAoB,GAAG,YAAY,EACvD,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,gBAAc,CAAC,uBAAuB,CAAC,EAC5E,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,oDAAoD;iBAC/E,CAAC;aACL;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC7B,IAAI,KAAK,YAAY,qCAAoB,EAAE;oBACvC,MAAM,KAAK,CAAC;iBACf;gBACD,MAAM,IAAI,6BAAY,CAAC,oCAAoC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;aACnG;YAED,wDAAwD;YACxD,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CACvD,gBAAc,CAAC,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,CAC7D,CAAC;YAEF,qEAAqE;YACrE,MAAM,eAAe,GAAG,KAAK,CAAC;YAE9B,MAAM,WAAW,GAAyB,IAAI,GAAG,EAAE,CAAC;YAEpD,sEAAsE;YACtE,6CAA6C;YAC7C,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;gBACvD,IAAI,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBACpC,OAAO,KAAK,CAAC;iBAChB;gBACD,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YAE/D,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,sCAAsC,CACpF,uBAAuB,EACvB,eAAe,CAClB,CAAC;YAEF,IAAI,SAAS,GAA6B,EAAE,CAAC;YAE7C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,2CAA2C,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;YAElH,SAAS,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;YAElC,OAAO;gBACH,SAAS;gBACT,eAAe;gBACf,eAAe;aAClB,CAAC;SACL;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,KAAK,YAAY,qCAAoB,EAAE;gBACvC,MAAM,KAAK,CAAC;aACf;YACD,MAAM,IAAI,6BAAY,CAAC,2BAA2B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SAC1F;gBAAS;YACN,IAAI,EAAE,GAAG,EAAE,CAAC;SACf;IACL,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAC/B,SAAc,EACd,OAAiB;QAEjB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAW,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;IACvF,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC5B,eAAmC,EACnC,OAAiB,EACjB,MAAc;QAEd,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,0BAA0B,CAAC,gCAAgC,CACrF,eAAe,CAAC,YAAY,EAC5B,YAAY,CACf,CAAuC,CAAC;QAEzC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE;YAChC,OAAO,IAAI,CAAC;SACf;QAED,uEAAuE;QACvE,8CAA8C;QAC9C,IAAI,iBAAiB,GAAG,gBAAc,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAE5F,uEAAuE;QACvE,iBAAiB,KAAK,gBAAc,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEzF,IAAI,iBAAiB,EAAE;YACnB,MAAM,WAAW,GAAS,6BAAa,CAAC,4BAA4B,CAChE,iBAAiB,CAAC,oBAAoB,EACtC,eAAe,CAAC,aAAa,CAAC,gBAAgB,CACjD,CAAC;YACF,MAAM,aAAa,GAAS,6BAAa,CAAC,4BAA4B,CAClE,iBAAiB,CAAC,sBAAsB,EACxC,eAAe,CAAC,aAAa,CAAC,gBAAgB,CACjD,CAAC;YAEF,OAAO;gBACH,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,SAAS;gBAC3C,OAAO,EAAE,iBAAiB,CAAC,OAAO;gBAClC,kBAAkB,EAAE,aAAa,CAAC,WAAW,EAAE;gBAC/C,gBAAgB,EAAE,WAAW,CAAC,WAAW,EAAE;gBAC3C,gBAAgB,EAAE,eAAe,CAAC,qBAAqB;gBACvD,UAAU,EAAE,eAAe,CAAC,UAAU;gBACtC,OAAO,EAAE,eAAe,CAAC,YAAY;gBACrC,aAAa,EAAE,iBAAiB,CAAC,aAAa;gBAC9C,aAAa,EAAE,IAAI;gBACnB,aAAa,EAAE,eAAe,CAAC,aAAa,CAAC,aAAc;aACrB,CAAC;SAC9C;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,2CAA2C,CACpD,UAA0C,EAC1C,eAAkD;QAElD,MAAM,WAAW,GAA6B,EAAE,CAAC;QACjD,MAAM,mBAAmB,GAA4B,EAAE,CAAC;QACxD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAwC,CAAC;QAExE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAChC,0DAA0D;YAC1D,MAAM,SAAS,GAAyB,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACrF,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;gBACnB,WAAW,CAAC,IAAI,CAAC;oBACb,SAAS;oBACT,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,IAAI;iBACjB,CAAC,CAAC;gBACH,SAAS;aACZ;YAED,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,KAAK,yBAAiB,CAAC,QAAQ,CAAC,CAAC;YAEpG,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE;gBAC9B,IAAI,SAAS,CAAC,aAAa,IAAI,IAAI,IAAI,SAAS,CAAC,UAAU,KAAK,kCAAiB,CAAC,KAAK,EAAE;oBACrF,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAClD,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC9D,SAAS;iBACZ;gBAED,gFAAgF;gBAChF,WAAW,CAAC,IAAI,CAAC;oBACb,SAAS;oBACT,QAAQ,EAAE,GAAG;oBACb,QAAQ,EAAE,IAAI;iBACjB,CAAC,CAAC;aACN;SACJ;QAED,MAAM,sBAAsB,GAA2C,CAAC,mBAAmB,CAAC,MAAM;YAC9F,CAAC,CAAC,IAAI,GAAG,EAAE;YACX,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,CAAC;QAErF,KAAK,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC,EAAE;YAChF,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC,CAAC;YAEjD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC;YAE1F,WAAW,CAAC,IAAI,CAAC;gBACb,SAAS;gBACT,QAAQ,EAAE,QAAQ,IAAI,IAAI;gBAC1B,QAAQ,EAAE,QAAQ,IAAI,IAAI;aAC7B,CAAC,CAAC;SACN;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAY,cAAc;QACtB,OAAO;YACH,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,mBAAa,CAAC,UAAU;YAC9B,KAAK,EAAE,oBAAc,CAAC,IAAI;YAC1B,MAAM,EAAE,qBAAe,CAAC,6BAA6B;YACrD,IAAI,EAAE,CAAC,mBAAa,CAAC,QAAQ,CAAC;YAC9B,oBAAoB,EAAE,EAAE;YACxB,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI,EAAE,2BAA2B;SACpD,CAAC;IACN,CAAC;;AAtUuB,2BAAY,GAAG,EAAE,GAAG,IAAI,AAAZ,CAAa;AACzB,mCAAoB,GAAG,EAAE,AAAL,CAAM;AAC1B,sCAAuB,GAAG,gBAAc,CAAC,oBAAoB,GAAG,gBAAc,CAAC,YAAY,AAApE,CAAqE;yBAH3G,cAAc;IAD1B,IAAA,qBAAU,GAAE;IAOJ,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,6BAA6B,CAAC,CAAA;IAChD,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,oBAAoB,CAAC,CAAA;IACvC,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,+BAA+B,CAAC,CAAA;IAClD,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,gCAAgC,CAAC,CAAA;IACnD,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,wBAAwB,CAAC,CAAA;IAC3C,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,0BAA0B,CAAC,CAAA;qCALuC,6DAA6B;QAC3C,kCAAoB;QACN,iEAA+B;QACvC,mEAAgC;QACpC,mDAAwB;QACd,uDAA0B;GAXxG,cAAc,CAwU1B"}
@@ -1,4 +1,5 @@
1
1
  import { RepositoryWithSubscriber } from "../../../shared/service/VPSubscriber";
2
+ import { IStopCacheDto } from "../../../../schema-definitions/ropid-gtfs/interfaces/IStopDto";
2
3
  import { IoRedisConnector } from "@golemio/core/dist/helpers/data-access/redis/IoRedisConnector";
3
4
  import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
4
5
  export declare class GtfsStopsRedisRepository implements RepositoryWithSubscriber {
@@ -10,4 +11,5 @@ export declare class GtfsStopsRedisRepository implements RepositoryWithSubscribe
10
11
  setCurrentSetName(name: string): void;
11
12
  getAswNodeIdFromCisId(cisId: string): Promise<string | null>;
12
13
  getGtfsStopIdsByAswNode(aswNodeId: string): Promise<string[]>;
14
+ getGtfsStopsDetailsByAswId(aswIds: string[]): Promise<IStopCacheDto[]>;
13
15
  }
@@ -54,7 +54,7 @@ let GtfsStopsRedisRepository = exports.GtfsStopsRedisRepository = class GtfsStop
54
54
  return await connection.hget(`${this.setName}:cisToAswNode`, cisId);
55
55
  }
56
56
  catch (error) {
57
- throw new golemio_errors_1.GeneralError("Cannot get run trips from cache", this.constructor.name, error);
57
+ throw new golemio_errors_1.GeneralError("Cannot aswNodeId from cache", this.constructor.name, error);
58
58
  }
59
59
  }
60
60
  async getGtfsStopIdsByAswNode(aswNodeId) {
@@ -70,7 +70,29 @@ let GtfsStopsRedisRepository = exports.GtfsStopsRedisRepository = class GtfsStop
70
70
  return listOfGtfsStops.split(",");
71
71
  }
72
72
  catch (error) {
73
- throw new golemio_errors_1.GeneralError("Cannot get run trips from cache", this.constructor.name, error);
73
+ throw new golemio_errors_1.GeneralError("Cannot gtfsStopIds from cache", this.constructor.name, error);
74
+ }
75
+ }
76
+ async getGtfsStopsDetailsByAswId(aswIds) {
77
+ const connection = await this.checkSetNameAndConnection();
78
+ if (!connection) {
79
+ throw new golemio_errors_1.GeneralError("Unable to get connection", this.constructor.name);
80
+ }
81
+ try {
82
+ const stopsDetail = await connection.hmget(`${this.setName}:staticData`, ...aswIds);
83
+ if (!stopsDetail) {
84
+ throw new golemio_errors_1.GeneralError(`Unable to get stops details by aswId: ${aswIds}`, this.constructor.name);
85
+ }
86
+ const res = [];
87
+ for (const stopDetail of stopsDetail) {
88
+ if (stopDetail === null)
89
+ continue;
90
+ res.push(JSON.parse(stopDetail));
91
+ }
92
+ return res;
93
+ }
94
+ catch (error) {
95
+ throw new golemio_errors_1.GeneralError("Cannot get stops details from cache", this.constructor.name, error);
74
96
  }
75
97
  }
76
98
  };
@@ -1 +1 @@
1
- {"version":3,"file":"GtfsStopsRedisRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/ropid-gtfs/data-access/redis/GtfsStopsRedisRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,iFAA0E;AAC1E,oGAAiG;AACjG,wEAAqE;AAErE,+DAAuE;AACvE,6EAAwE;AACxE,iEAAwE;AAGjE,IAAM,wBAAwB,sCAA9B,MAAM,wBAAwB;IAGjC,YAC2C,cAAwC,EACrD,GAAoB;QADC,mBAAc,GAAd,cAAc,CAAkB;QAC7C,QAAG,GAAH,GAAG,CAAS;QAJ1C,YAAO,GAAuB,SAAS,CAAC,CAAC,0CAA0C;IAKxF,CAAC;IAEI,KAAK,CAAC,yBAAyB;QACnC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE;YACpC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACvC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,mCAA2B,gBAAgB,CAAC,CAAC;YAC3F,IAAI,CAAC,aAAa,EAAE;gBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,mCAA2B,EAAE,CAAC,CAAC;gBACnE,OAAO,IAAI,CAAC;aACf;iBAAM;gBACH,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;aAChC;SACJ;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAEM,iBAAiB,CAAC,IAAY;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,KAAa;QAC5C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC1D,IAAI,CAAC,UAAU,EAAE;YACb,OAAO,IAAI,CAAC;SACf;QACD,IAAI;YACA,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,eAAe,EAAE,KAAK,CAAC,CAAC;SACvE;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,IAAI,6BAAY,CAAC,iCAAiC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC3F;IACL,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAAC,SAAiB;QAClD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC1D,IAAI,CAAC,UAAU,EAAE;YACb,OAAO,EAAE,CAAC;SACb;QACD,IAAI;YACA,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,qBAAqB,EAAE,SAAS,CAAC,CAAC;YAE/F,IAAI,CAAC,eAAe,EAAE;gBAClB,OAAO,EAAE,CAAC;aACb;YACD,OAAO,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACrC;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,IAAI,6BAAY,CAAC,iCAAiC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC3F;IACL,CAAC;CACJ,CAAA;mCAzDY,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAKJ,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,cAAc,CAAC,CAAA;IACrC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCADsC,mCAAgB;GAJ1E,wBAAwB,CAyDpC"}
1
+ {"version":3,"file":"GtfsStopsRedisRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/ropid-gtfs/data-access/redis/GtfsStopsRedisRepository.ts"],"names":[],"mappings":"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"}
@@ -19,4 +19,6 @@ export interface IStopDto {
19
19
  export interface IStopComputedDto {
20
20
  computed_cis_stop_id: string | null;
21
21
  }
22
- export type IAwsNodeIdGtfsStopIdDto = Pick<IStopDto, "asw_node_id" | "stop_id">;
22
+ export type IStopCacheDto = Pick<IStopDto, "stop_id" | "asw_node_id" | "platform_code" | "stop_name" | "wheelchair_boarding" | "zone_id"> & {
23
+ computed_cis_stop_id: string;
24
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/pid",
3
- "version": "4.1.4-dev.2044449114",
3
+ "version": "4.1.4-dev.2058905192",
4
4
  "description": "Golemio PID Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",