@golemio/pid 5.9.3-dev.2487758126 → 5.9.3-dev.2498055915

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 (29) hide show
  1. package/dist/integration-engine/ropid-gtfs/facade/DeparturePresetsFacade.d.ts +1 -0
  2. package/dist/integration-engine/ropid-gtfs/facade/DeparturePresetsFacade.js +5 -2
  3. package/dist/integration-engine/ropid-gtfs/facade/DeparturePresetsFacade.js.map +1 -1
  4. package/dist/integration-engine/ropid-gtfs/ioc/Di.js +7 -5
  5. package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
  6. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +1 -0
  7. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +1 -0
  8. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
  9. package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js +1 -0
  10. package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js.map +1 -1
  11. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js +1 -0
  12. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js.map +1 -1
  13. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RemapPresetsToGtfsStopsTask.d.ts +9 -0
  14. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RemapPresetsToGtfsStopsTask.js +38 -0
  15. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RemapPresetsToGtfsStopsTask.js.map +1 -0
  16. package/dist/output-gateway/pid/controllers/v2/V2DepartureBoardsController.d.ts +4 -0
  17. package/dist/output-gateway/pid/controllers/v2/V2DepartureBoardsController.js +69 -37
  18. package/dist/output-gateway/pid/controllers/v2/V2DepartureBoardsController.js.map +1 -1
  19. package/dist/output-gateway/pid/helpers/MpvnetTransportTypeMapper.d.ts +8 -0
  20. package/dist/output-gateway/pid/helpers/MpvnetTransportTypeMapper.js +45 -0
  21. package/dist/output-gateway/pid/helpers/MpvnetTransportTypeMapper.js.map +1 -0
  22. package/dist/output-gateway/pid/helpers/MpvnetXmlSerializer.d.ts +16 -0
  23. package/dist/output-gateway/pid/helpers/MpvnetXmlSerializer.js +137 -0
  24. package/dist/output-gateway/pid/helpers/MpvnetXmlSerializer.js.map +1 -0
  25. package/dist/output-gateway/pid/routers/v2/V2PIDRouter.js +3 -0
  26. package/dist/output-gateway/pid/routers/v2/V2PIDRouter.js.map +1 -1
  27. package/docs/implementation_documentation.md +21 -0
  28. package/docs/openapi-output.yaml +256 -137
  29. package/package.json +2 -9
@@ -14,5 +14,6 @@ export declare class DeparturePresetsFacade {
14
14
  private logger;
15
15
  constructor(metadataRepository: RopidGtfsMetadataRepository, ropidGTFSStopsModel: RopidGTFSStopsModel, departurePresetsRepository: DeparturePresetsRepository, ropidDeparturesPresetsRopidGTFSStopsRepository: RopidDeparturesPresetsRopidGTFSStopsRepository, transformationDeparturesPresets: RopidDeparturesPresetsTransformation, logger: ILogger);
16
16
  handleNewDeparturePresets(data: IRopidDeparturesPreset[], lastModified: string): Promise<void>;
17
+ remapPresetsToGtfsStops(): Promise<void>;
17
18
  private mapPresetsToGtfsStops;
18
19
  }
@@ -63,14 +63,17 @@ let DeparturePresetsFacade = class DeparturePresetsFacade {
63
63
  });
64
64
  await this.metadataRepository.checkSavedRows(DatasetEnum_1.DatasetEnum.DEPARTURES_PRESETS, dbLastModified.version + 1);
65
65
  await this.metadataRepository.replaceTmpTables(DatasetEnum_1.DatasetEnum.DEPARTURES_PRESETS, dbLastModified.version + 1);
66
- const mappedPresetsWithGtfsStops = await this.mapPresetsToGtfsStops();
67
- await this.ropidDeparturesPresetsRopidGTFSStopsRepository.refreshData(mappedPresetsWithGtfsStops);
66
+ await this.remapPresetsToGtfsStops();
68
67
  }
69
68
  catch (err) {
70
69
  this.logger.error(err);
71
70
  await this.metadataRepository.rollbackFailedSaving(DatasetEnum_1.DatasetEnum.DEPARTURES_PRESETS, dbLastModified.version + 1);
72
71
  }
73
72
  }
73
+ async remapPresetsToGtfsStops() {
74
+ const mappings = await this.mapPresetsToGtfsStops();
75
+ await this.ropidDeparturesPresetsRopidGTFSStopsRepository.refreshData(mappings);
76
+ }
74
77
  async mapPresetsToGtfsStops() {
75
78
  const presets = await this.departurePresetsRepository.getAll();
76
79
  const mappedPresetsWithGtfsStops = [];
@@ -1 +1 @@
1
- {"version":3,"file":"DeparturePresetsFacade.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/facade/DeparturePresetsFacade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DeparturePresetsFacade.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/facade/DeparturePresetsFacade.ts"],"names":[],"mappings":"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"}
@@ -6,14 +6,15 @@ const RopidDeparturesPresetsRopidGTFSStopsRepository_1 = require("../../jis/repo
6
6
  const ropid_gtfs_1 = require("../../../schema-definitions/ropid-gtfs");
7
7
  const pubsub_1 = require("@golemio/core/dist/integration-engine/data-access/pubsub");
8
8
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
9
+ const RopidGTFSCisStopsModel_1 = require("../RopidGTFSCisStopsModel");
9
10
  const RopidGTFSStopsModel_1 = require("../RopidGTFSStopsModel");
10
11
  const RopidGtfsFacade_1 = require("../RopidGtfsFacade");
11
12
  const RopidGtfsMetadataRepository_1 = require("../RopidGtfsMetadataRepository");
12
13
  const RopidGTFSRoutesRepository_1 = require("../data-access/RopidGTFSRoutesRepository");
13
14
  const RopidGtfsRepository_1 = require("../data-access/RopidGtfsRepository");
14
15
  const BlockStopsRedisRepository_1 = require("../data-access/cache/BlockStopsRedisRepository");
15
- const NotPublicVehiclesRedisRepository_1 = require("../data-access/cache/NotPublicVehiclesRedisRepository");
16
16
  const GtfsTripStopsCacheRepository_1 = require("../data-access/cache/GtfsTripStopsCacheRepository");
17
+ const NotPublicVehiclesRedisRepository_1 = require("../data-access/cache/NotPublicVehiclesRedisRepository");
17
18
  const PublicGtfsDepartureRepository_1 = require("../data-access/cache/PublicGtfsDepartureRepository");
18
19
  const StaticFileRedisRepository_1 = require("../data-access/cache/StaticFileRedisRepository");
19
20
  const precomputed_1 = require("../data-access/precomputed");
@@ -28,27 +29,27 @@ const DeparturesPresetsDatasource_1 = require("../workers/presets/data-access/De
28
29
  const CheckForNewDeparturesPresetsTask_1 = require("../workers/presets/tasks/CheckForNewDeparturesPresetsTask");
29
30
  const CollectAndSaveLogsTask_1 = require("../workers/presets/tasks/CollectAndSaveLogsTask");
30
31
  const DownloadDeparturesPresetsTask_1 = require("../workers/presets/tasks/DownloadDeparturesPresetsTask");
31
- const EnsureCacheTask_1 = require("../workers/timetables/tasks/EnsureCacheTask");
32
32
  const ProcessAndSendLogsTask_1 = require("../workers/presets/tasks/ProcessAndSendLogsTask");
33
33
  const SavePresetsDataTask_1 = require("../workers/presets/tasks/SavePresetsDataTask");
34
34
  const CheckForNewDataTask_1 = require("../workers/timetables/tasks/CheckForNewDataTask");
35
35
  const CheckSavedRowsAndReplaceTablesTask_1 = require("../workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask");
36
36
  const DownloadDatasetsTask_1 = require("../workers/timetables/tasks/DownloadDatasetsTask");
37
+ const EnsureCacheTask_1 = require("../workers/timetables/tasks/EnsureCacheTask");
37
38
  const RefreshGtfsStopsCacheTask_1 = require("../workers/timetables/tasks/RefreshGtfsStopsCacheTask");
38
- const RefreshPrecomputedTablesTask_1 = require("../workers/timetables/tasks/RefreshPrecomputedTablesTask");
39
39
  const RefreshGtfsTripStopsCacheTask_1 = require("../workers/timetables/tasks/RefreshGtfsTripStopsCacheTask");
40
+ const RefreshPrecomputedTablesTask_1 = require("../workers/timetables/tasks/RefreshPrecomputedTablesTask");
40
41
  const RefreshPublicGtfsDepartureCacheTask_1 = require("../workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask");
42
+ const RemapPresetsToGtfsStopsTask_1 = require("../workers/timetables/tasks/RemapPresetsToGtfsStopsTask");
41
43
  const SaveStaticDataTask_1 = require("../workers/timetables/tasks/SaveStaticDataTask");
42
44
  const TransformAndSaveDataTask_1 = require("../workers/timetables/tasks/TransformAndSaveDataTask");
43
45
  const DeparturesDirectionRepository_1 = require("../workers/timetables/tasks/data-access/DeparturesDirectionRepository");
44
46
  const MetroRailtrackGPSRepository_1 = require("../workers/timetables/tasks/data-access/MetroRailtrackGPSRepository");
47
+ const GtfsStopsRedisRepository_1 = require("../workers/timetables/tasks/data-access/cache/GtfsStopsRedisRepository");
45
48
  const PrecomputedTablesFacade_1 = require("../workers/timetables/tasks/helpers/PrecomputedTablesFacade");
46
49
  const RopidGtfsFactory_1 = require("../workers/timetables/tasks/helpers/RopidGtfsFactory");
47
50
  const DeparturesDirectionTransformation_1 = require("../workers/timetables/tasks/transformations/DeparturesDirectionTransformation");
48
51
  const MetroRailtrackDataTransformation_1 = require("../workers/timetables/tasks/transformations/MetroRailtrackDataTransformation");
49
52
  const RopidGtfsContainerToken_1 = require("./RopidGtfsContainerToken");
50
- const GtfsStopsRedisRepository_1 = require("../workers/timetables/tasks/data-access/cache/GtfsStopsRedisRepository");
51
- const RopidGTFSCisStopsModel_1 = require("../RopidGTFSCisStopsModel");
52
53
  //#region Initialization
53
54
  const RopidGtfsContainer = Di_1.PidContainer.createChildContainer();
54
55
  exports.RopidGtfsContainer = RopidGtfsContainer;
@@ -91,6 +92,7 @@ RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContaine
91
92
  RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RefreshGtfsStopsCacheTask, RefreshGtfsStopsCacheTask_1.RefreshGtfsStopsCacheTask);
92
93
  RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RefreshGtfsTripStopsCacheTask, RefreshGtfsTripStopsCacheTask_1.RefreshGtfsTripStopsCacheTask);
93
94
  RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RefreshPublicGtfsDepartureCacheTask, RefreshPublicGtfsDepartureCacheTask_1.RefreshPublicGtfsDepartureCacheTask);
95
+ RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RemapPresetsToGtfsStopsTask, RemapPresetsToGtfsStopsTask_1.RemapPresetsToGtfsStopsTask);
94
96
  RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.DownloadDeparturesPresetsTask, DownloadDeparturesPresetsTask_1.DownloadDeparturesPresetsTask);
95
97
  RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.CheckForNewDeparturesPresetsTask, CheckForNewDeparturesPresetsTask_1.CheckForNewDeparturesPresetsTask);
96
98
  RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.SaveStaticDataTask, SaveStaticDataTask_1.SaveStaticDataTask);
@@ -1 +1 @@
1
- {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/ioc/Di.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/ioc/Di.ts"],"names":[],"mappings":"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"}
@@ -44,5 +44,6 @@ declare const RopidGtfsContainerToken: {
44
44
  ProcessAndSendLogsTask: symbol;
45
45
  SavePresetsDataTask: symbol;
46
46
  RefreshGtfsTripStopsCacheTask: symbol;
47
+ RemapPresetsToGtfsStopsTask: symbol;
47
48
  };
48
49
  export { RopidGtfsContainerToken };
@@ -47,6 +47,7 @@ const RopidGtfsContainerToken = {
47
47
  ProcessAndSendLogsTask: Symbol("ProcessAndSendLogsTask"),
48
48
  SavePresetsDataTask: Symbol("SavePresetsDataTask"),
49
49
  RefreshGtfsTripStopsCacheTask: Symbol("RefreshGtfsTripStopsCacheTask"),
50
+ RemapPresetsToGtfsStopsTask: Symbol("RemapPresetsToGtfsStopsTask"),
50
51
  };
51
52
  exports.RopidGtfsContainerToken = RopidGtfsContainerToken;
52
53
  //# sourceMappingURL=RopidGtfsContainerToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RopidGtfsContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,uBAAuB,GAAG;IAC5B,yBAAyB,EAAE,MAAM,CAAC,2BAA2B,CAAC;IAC9D,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,yBAAyB,EAAE,MAAM,CAAC,2BAA2B,CAAC;IAC9D,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,yBAAyB,EAAE,MAAM,CAAC,2BAA2B,CAAC;IAC9D,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,kCAAkC,EAAE,MAAM,CAAC,oCAAoC,CAAC;IAChF,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC;IAC5C,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAChD,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC;IACxD,eAAe,EAAE,MAAM,CAAC,iBAAiB,CAAC;IAC1C,yBAAyB,EAAE,MAAM,CAAC,2BAA2B,CAAC;IAC9D,mCAAmC,EAAE,MAAM,CAAC,qCAAqC,CAAC;IAClF,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,qCAAqC,EAAE,MAAM,CAAC,uCAAuC,CAAC;IACtF,mCAAmC,EAAE,MAAM,CAAC,qCAAqC,CAAC;IAClF,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAChD,iCAAiC,EAAE,MAAM,CAAC,mCAAmC,CAAC;IAC9E,8CAA8C,EAAE,MAAM,CAAC,gDAAgD,CAAC;IACxG,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,4BAA4B,EAAE,MAAM,CAAC,8BAA8B,CAAC;IACpE,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC;IACxD,eAAe,EAAE,MAAM,CAAC,iBAAiB,CAAC;IAC1C,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,kCAAkC,EAAE,MAAM,CAAC,oCAAoC,CAAC;IAChF,4BAA4B,EAAE,MAAM,CAAC,8BAA8B,CAAC;IACpE,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC;IACxD,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC;IACxD,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;CACzE,CAAC;AAEO,0DAAuB"}
1
+ {"version":3,"file":"RopidGtfsContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,uBAAuB,GAAG;IAC5B,yBAAyB,EAAE,MAAM,CAAC,2BAA2B,CAAC;IAC9D,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,yBAAyB,EAAE,MAAM,CAAC,2BAA2B,CAAC;IAC9D,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,yBAAyB,EAAE,MAAM,CAAC,2BAA2B,CAAC;IAC9D,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,kCAAkC,EAAE,MAAM,CAAC,oCAAoC,CAAC;IAChF,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC;IAC5C,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAChD,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC;IACxD,eAAe,EAAE,MAAM,CAAC,iBAAiB,CAAC;IAC1C,yBAAyB,EAAE,MAAM,CAAC,2BAA2B,CAAC;IAC9D,mCAAmC,EAAE,MAAM,CAAC,qCAAqC,CAAC;IAClF,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,qCAAqC,EAAE,MAAM,CAAC,uCAAuC,CAAC;IACtF,mCAAmC,EAAE,MAAM,CAAC,qCAAqC,CAAC;IAClF,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAChD,iCAAiC,EAAE,MAAM,CAAC,mCAAmC,CAAC;IAC9E,8CAA8C,EAAE,MAAM,CAAC,gDAAgD,CAAC;IACxG,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,4BAA4B,EAAE,MAAM,CAAC,8BAA8B,CAAC;IACpE,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC;IACxD,eAAe,EAAE,MAAM,CAAC,iBAAiB,CAAC;IAC1C,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,kCAAkC,EAAE,MAAM,CAAC,oCAAoC,CAAC;IAChF,4BAA4B,EAAE,MAAM,CAAC,8BAA8B,CAAC;IACpE,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC;IACxD,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC;IACxD,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;CACrE,CAAC;AAEO,0DAAuB"}
@@ -24,6 +24,7 @@ class TimetableWorker extends workers_1.AbstractWorker {
24
24
  this.registerTask(Di_1.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.TransformAndSaveDataTask));
25
25
  this.registerTask(Di_1.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.SaveStaticDataTask));
26
26
  this.registerTask(Di_1.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.EnsureCacheTask));
27
+ this.registerTask(Di_1.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RemapPresetsToGtfsStopsTask));
27
28
  }
28
29
  }
29
30
  exports.TimetableWorker = TimetableWorker;
@@ -1 +1 @@
1
- {"version":3,"file":"TimetableWorker.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.ts"],"names":[],"mappings":";;;AAAA,qCAA2D;AAC3D,+EAAqF;AACrF,2EAA6F;AAC7F,2CAAoD;AAYpD,MAAa,eAAgB,SAAQ,wBAAc;IAG/C;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,iCAAqB,CAAC;QAgChC,iBAAY,GAAG,CAAC,IAAuB,EAAQ,EAAE;YACpD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QA9BE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CAA4B,iDAAuB,CAAC,yBAAyB,CAAC,CAC3G,CAAC;QACF,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CACtB,iDAAuB,CAAC,mCAAmC,CAC9D,CACJ,CAAC;QACF,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CAAgC,iDAAuB,CAAC,6BAA6B,CAAC,CACnH,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,uBAAkB,CAAC,OAAO,CAAsB,iDAAuB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAChH,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CACtB,iDAAuB,CAAC,kCAAkC,CAC7D,CACJ,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,uBAAkB,CAAC,OAAO,CAAuB,iDAAuB,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CAA+B,iDAAuB,CAAC,4BAA4B,CAAC,CACjH,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,uBAAkB,CAAC,OAAO,CAA2B,iDAAuB,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC1H,IAAI,CAAC,YAAY,CAAC,uBAAkB,CAAC,OAAO,CAAqB,iDAAuB,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC9G,IAAI,CAAC,YAAY,CAAC,uBAAkB,CAAC,OAAO,CAAkB,iDAAuB,CAAC,eAAe,CAAC,CAAC,CAAC;IAC5G,CAAC;CAMJ;AArCD,0CAqCC"}
1
+ {"version":3,"file":"TimetableWorker.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.ts"],"names":[],"mappings":";;;AAAA,qCAA2D;AAC3D,+EAAqF;AACrF,2EAA6F;AAC7F,2CAAoD;AAapD,MAAa,eAAgB,SAAQ,wBAAc;IAG/C;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,iCAAqB,CAAC;QAmChC,iBAAY,GAAG,CAAC,IAAuB,EAAQ,EAAE;YACpD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QAjCE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CAA4B,iDAAuB,CAAC,yBAAyB,CAAC,CAC3G,CAAC;QACF,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CACtB,iDAAuB,CAAC,mCAAmC,CAC9D,CACJ,CAAC;QACF,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CAAgC,iDAAuB,CAAC,6BAA6B,CAAC,CACnH,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,uBAAkB,CAAC,OAAO,CAAsB,iDAAuB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAChH,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CACtB,iDAAuB,CAAC,kCAAkC,CAC7D,CACJ,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,uBAAkB,CAAC,OAAO,CAAuB,iDAAuB,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CAA+B,iDAAuB,CAAC,4BAA4B,CAAC,CACjH,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,uBAAkB,CAAC,OAAO,CAA2B,iDAAuB,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC1H,IAAI,CAAC,YAAY,CAAC,uBAAkB,CAAC,OAAO,CAAqB,iDAAuB,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC9G,IAAI,CAAC,YAAY,CAAC,uBAAkB,CAAC,OAAO,CAAkB,iDAAuB,CAAC,eAAe,CAAC,CAAC,CAAC;QACxG,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CAA8B,iDAAuB,CAAC,2BAA2B,CAAC,CAC/G,CAAC;IACN,CAAC;CAMJ;AAxCD,0CAwCC"}
@@ -69,6 +69,7 @@ let CheckSavedRowsAndReplaceTablesTask = class CheckSavedRowsAndReplaceTablesTas
69
69
  integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "refreshPublicGtfsDepartureCache", {}),
70
70
  integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "refreshGtfsStopsCache", {}),
71
71
  integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "refreshGtfsTripStopsCache", {}),
72
+ integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "remapPresetsToGtfsStops", {}),
72
73
  ]);
73
74
  }
74
75
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"CheckSavedRowsAndReplaceTablesTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CheckSavedRowsAndReplaceTablesTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { DeparturePresetsFacade } from "../../../facade/DeparturePresetsFacade";
2
+ import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine";
3
+ export declare class RemapPresetsToGtfsStopsTask extends AbstractEmptyTask {
4
+ private readonly departurePresetsFacade;
5
+ readonly queueName = "remapPresetsToGtfsStops";
6
+ readonly queueTtl: number;
7
+ constructor(departurePresetsFacade: DeparturePresetsFacade);
8
+ protected execute(): Promise<void>;
9
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RemapPresetsToGtfsStopsTask = void 0;
16
+ const DeparturePresetsFacade_1 = require("../../../facade/DeparturePresetsFacade");
17
+ const RopidGtfsContainerToken_1 = require("../../../ioc/RopidGtfsContainerToken");
18
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
19
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
20
+ const constants_1 = require("../constants");
21
+ let RemapPresetsToGtfsStopsTask = class RemapPresetsToGtfsStopsTask extends integration_engine_1.AbstractEmptyTask {
22
+ constructor(departurePresetsFacade) {
23
+ super(constants_1.TIMETABLE_WORKER_NAME);
24
+ this.departurePresetsFacade = departurePresetsFacade;
25
+ this.queueName = "remapPresetsToGtfsStops";
26
+ this.queueTtl = 59 * 60 * 1000; // 59 minutes
27
+ }
28
+ async execute() {
29
+ await this.departurePresetsFacade.remapPresetsToGtfsStops();
30
+ }
31
+ };
32
+ exports.RemapPresetsToGtfsStopsTask = RemapPresetsToGtfsStopsTask;
33
+ exports.RemapPresetsToGtfsStopsTask = RemapPresetsToGtfsStopsTask = __decorate([
34
+ (0, tsyringe_1.injectable)(),
35
+ __param(0, (0, tsyringe_1.inject)(RopidGtfsContainerToken_1.RopidGtfsContainerToken.DeparturePresetsFacade)),
36
+ __metadata("design:paramtypes", [DeparturePresetsFacade_1.DeparturePresetsFacade])
37
+ ], RemapPresetsToGtfsStopsTask);
38
+ //# sourceMappingURL=RemapPresetsToGtfsStopsTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemapPresetsToGtfsStopsTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/RemapPresetsToGtfsStopsTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mFAAsF;AACtF,kFAAqF;AACrF,8EAA0E;AAC1E,iEAAwE;AACxE,4CAAqD;AAG9C,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,sCAAiB;IAI9D,YAC4D,sBAA+D;QAEvH,KAAK,CAAC,iCAAqB,CAAC,CAAC;QAF4C,2BAAsB,GAAtB,sBAAsB,CAAwB;QAJ3G,cAAS,GAAG,yBAAyB,CAAC;QACtC,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;IAMxD,CAAC;IAES,KAAK,CAAC,OAAO;QACnB,MAAM,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;IAChE,CAAC;CACJ,CAAA;AAbY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,qBAAU,GAAE;IAMJ,WAAA,IAAA,iBAAM,EAAC,iDAAuB,CAAC,sBAAsB,CAAC,CAAA;qCAA0C,+CAAsB;GALlH,2BAA2B,CAavC"}
@@ -3,4 +3,8 @@ export declare class V2DepartureBoardsController {
3
3
  private departureBoardsModel;
4
4
  constructor();
5
5
  getDepartureBoard: RequestHandler;
6
+ getDepartureBoardXml: RequestHandler;
7
+ private parseQuery;
8
+ private computeTimeFrom;
9
+ private fetchBoard;
6
10
  }
@@ -5,54 +5,42 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.V2DepartureBoardsController = void 0;
7
7
  const dto_1 = require("../../dto");
8
+ const MpvnetXmlSerializer_1 = require("../../helpers/MpvnetXmlSerializer");
8
9
  const PIDDepartureBoardsModel_1 = require("../../models/PIDDepartureBoardsModel");
9
10
  const shared_1 = require("../../../shared");
10
11
  const trace_provider_1 = require("@golemio/core/dist/monitoring/opentelemetry/trace-provider");
11
12
  const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
13
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
12
14
  const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
13
15
  class V2DepartureBoardsController {
14
16
  constructor() {
15
17
  this.getDepartureBoard = async (req, res, next) => {
16
- const queryData = (0, express_validator_1.matchedData)(req);
17
- const query = shared_1.RopidRouterUtils.mapObjectToDTOInstance(dto_1.DepartureBoardsQueryDTO, queryData);
18
- const preferredTimezone = shared_1.RopidRouterUtils.getPreferredTimezone(query.preferredTimezone);
18
+ const { query, preferredTimezone } = this.parseQuery(req);
19
19
  res.setHeader("X-Golemio-Preset-Metadata", `airConditionPossible=${query.airCondition ? 1 : 0}`);
20
- // datetime is valid ISO 8601 (by express validator)
21
- // it matches:
22
- // 2020-10-10T10:00:00Z
23
- // 2020-10-10 10:00:00.00Z
24
- // 2020-10-10T10:00:00+02
25
- // 2020-10-10T10:00:00+02:00
26
- const timezoneDefinedRegexp = /[T ][\d:.]+([zZ]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)/;
27
- // use timezone from ?preferredTimezone if not set in ?timeFrom
28
- const timeFrom = query.timeFrom
29
- ? query.timeFrom.match(timezoneDefinedRegexp)
30
- ? (0, moment_timezone_1.default)(query.timeFrom)
31
- : moment_timezone_1.default.tz(query.timeFrom, preferredTimezone)
32
- : undefined;
20
+ const timeFrom = this.computeTimeFrom(query, preferredTimezone);
33
21
  const span = (0, trace_provider_1.createChildSpan)("V2DepartureBoardsController.getDepartureBoard");
34
22
  try {
35
- const data = await this.departureBoardsModel.getAll({
36
- aswIds: query.aswIds,
37
- cisIds: query.cisIds,
38
- gtfsIds: query.ids,
39
- names: query.names,
40
- minutesAfter: query.minutesAfter,
41
- minutesBefore: query.minutesBefore,
42
- timeFrom,
43
- mode: query.mode,
44
- order: query.order,
45
- filter: query.filter,
46
- skip: query.skip,
47
- limit: query.limit,
48
- offset: query.offset,
49
- total: query.total ?? query.limit,
50
- timezone: preferredTimezone,
51
- includeMetroTrains: query.includeMetroTrains,
52
- airCondition: query.airCondition,
53
- appendHeadsignsLimit: query.appendHeadsignsLimit,
54
- });
55
- res.status(200).send(shared_1.RopidRouterUtils.mapObjectToDTOInstance(dto_1.DepartureBoardsResponseDTO, data));
23
+ const dto = await this.fetchBoard(query, preferredTimezone, timeFrom);
24
+ res.status(200).send(dto);
25
+ }
26
+ catch (err) {
27
+ next(err);
28
+ }
29
+ finally {
30
+ span?.end();
31
+ }
32
+ };
33
+ this.getDepartureBoardXml = async (req, res, next) => {
34
+ const { query, preferredTimezone } = this.parseQuery(req);
35
+ if (query.mode !== undefined && query.mode !== "departures") {
36
+ next(new golemio_errors_1.GeneralError("Only mode=departures is supported for the XML endpoint.", "V2DepartureBoardsController", undefined, 400));
37
+ return;
38
+ }
39
+ const timeFrom = this.computeTimeFrom(query, preferredTimezone);
40
+ const span = (0, trace_provider_1.createChildSpan)("V2DepartureBoardsController.getDepartureBoardXml");
41
+ try {
42
+ const dto = await this.fetchBoard(query, preferredTimezone, timeFrom);
43
+ res.set("Content-Type", "text/xml; charset=utf-8").status(200).send(MpvnetXmlSerializer_1.MpvnetXmlSerializer.serialize(dto));
56
44
  }
57
45
  catch (err) {
58
46
  next(err);
@@ -63,6 +51,50 @@ class V2DepartureBoardsController {
63
51
  };
64
52
  this.departureBoardsModel = new PIDDepartureBoardsModel_1.PIDDepartureBoardsModel();
65
53
  }
54
+ parseQuery(req) {
55
+ const queryData = (0, express_validator_1.matchedData)(req);
56
+ const query = shared_1.RopidRouterUtils.mapObjectToDTOInstance(dto_1.DepartureBoardsQueryDTO, queryData);
57
+ const preferredTimezone = shared_1.RopidRouterUtils.getPreferredTimezone(query.preferredTimezone);
58
+ return { query, preferredTimezone };
59
+ }
60
+ computeTimeFrom(query, preferredTimezone) {
61
+ // datetime is valid ISO 8601 (by express validator)
62
+ // it matches:
63
+ // 2020-10-10T10:00:00Z
64
+ // 2020-10-10 10:00:00.00Z
65
+ // 2020-10-10T10:00:00+02
66
+ // 2020-10-10T10:00:00+02:00
67
+ const timezoneDefinedRegexp = /[T ][\d:.]+([zZ]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)/;
68
+ // use timezone from ?preferredTimezone if not set in ?timeFrom
69
+ return query.timeFrom
70
+ ? query.timeFrom.match(timezoneDefinedRegexp)
71
+ ? (0, moment_timezone_1.default)(query.timeFrom)
72
+ : moment_timezone_1.default.tz(query.timeFrom, preferredTimezone)
73
+ : undefined;
74
+ }
75
+ async fetchBoard(query, preferredTimezone, timeFrom) {
76
+ const data = await this.departureBoardsModel.getAll({
77
+ aswIds: query.aswIds,
78
+ cisIds: query.cisIds,
79
+ gtfsIds: query.ids,
80
+ names: query.names,
81
+ minutesAfter: query.minutesAfter,
82
+ minutesBefore: query.minutesBefore,
83
+ timeFrom,
84
+ mode: query.mode,
85
+ order: query.order,
86
+ filter: query.filter,
87
+ skip: query.skip,
88
+ limit: query.limit,
89
+ offset: query.offset,
90
+ total: query.total ?? query.limit,
91
+ timezone: preferredTimezone,
92
+ includeMetroTrains: query.includeMetroTrains,
93
+ airCondition: query.airCondition,
94
+ appendHeadsignsLimit: query.appendHeadsignsLimit,
95
+ });
96
+ return shared_1.RopidRouterUtils.mapObjectToDTOInstance(dto_1.DepartureBoardsResponseDTO, data);
97
+ }
66
98
  }
67
99
  exports.V2DepartureBoardsController = V2DepartureBoardsController;
68
100
  //# sourceMappingURL=V2DepartureBoardsController.js.map
@@ -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,mFAA0E;AAC1E,gGAA2E;AAE3E,MAAa,2BAA2B;IAGpC;QAIO,sBAAiB,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAChE,MAAM,SAAS,GAAG,IAAA,+BAAW,EAAC,GAAG,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,yBAAgB,CAAC,sBAAsB,CAAC,6BAAuB,EAAE,SAAS,CAAC,CAAC;YAC1F,MAAM,iBAAiB,GAAG,yBAAgB,CAAC,oBAAoB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,2BAA2B,EAAE,wBAAwB,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAEjG,oDAAoD;YACpD,cAAc;YACd,uBAAuB;YACvB,0BAA0B;YAC1B,yBAAyB;YACzB,4BAA4B;YAC5B,MAAM,qBAAqB,GAAW,qDAAqD,CAAC;YAC5F,+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,CAAC;gBACD,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;oBAChC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;iBACnD,CAAC,CAAC;gBACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAgB,CAAC,sBAAsB,CAAC,gCAA0B,EAAE,IAAI,CAAC,CAAC,CAAC;YACpG,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,IAAI,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;oBAAS,CAAC;gBACP,IAAI,EAAE,GAAG,EAAE,CAAC;YAChB,CAAC;QACL,CAAC,CAAC;QAnDE,IAAI,CAAC,oBAAoB,GAAG,IAAI,iDAAuB,EAAE,CAAC;IAC9D,CAAC;CAmDJ;AAxDD,kEAwDC"}
1
+ {"version":3,"file":"V2DepartureBoardsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/controllers/v2/V2DepartureBoardsController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { MPVRouteTypesEnum } from "../../../helpers/RouteTypeEnums";
2
+ export interface ITransportTypeInput {
3
+ type: number | null;
4
+ is_night: boolean;
5
+ is_regional: boolean;
6
+ is_substitute_transport: boolean;
7
+ }
8
+ export declare function mapTransportType(route: ITransportTypeInput): MPVRouteTypesEnum;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapTransportType = mapTransportType;
4
+ const RouteTypeEnums_1 = require("../../../helpers/RouteTypeEnums");
5
+ const SIMPLE_TYPE_MAP = {
6
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.METRO]: RouteTypeEnums_1.MPVRouteTypesEnum.METRO,
7
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.TRAIN]: RouteTypeEnums_1.MPVRouteTypesEnum.TRAIN,
8
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.TROLLEYBUS]: RouteTypeEnums_1.MPVRouteTypesEnum.TROLLEYBUS,
9
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.FERRY]: RouteTypeEnums_1.MPVRouteTypesEnum.FERRY,
10
+ [RouteTypeEnums_1.GTFSRouteTypeEnum.FUNICULAR]: RouteTypeEnums_1.MPVRouteTypesEnum.FUNICULAR,
11
+ };
12
+ function mapTransportType(route) {
13
+ if (route.type === RouteTypeEnums_1.GTFSRouteTypeEnum.TRAM) {
14
+ return mapTram(route);
15
+ }
16
+ if (route.type === RouteTypeEnums_1.GTFSRouteTypeEnum.BUS) {
17
+ return mapBus(route);
18
+ }
19
+ return SIMPLE_TYPE_MAP[route.type] ?? RouteTypeEnums_1.MPVRouteTypesEnum.OTHER;
20
+ }
21
+ function mapTram(route) {
22
+ if (route.is_substitute_transport) {
23
+ return RouteTypeEnums_1.MPVRouteTypesEnum.TRAM_SUBSTITUTE;
24
+ }
25
+ if (route.is_night) {
26
+ return RouteTypeEnums_1.MPVRouteTypesEnum.TRAM_NIGHT;
27
+ }
28
+ return RouteTypeEnums_1.MPVRouteTypesEnum.TRAM;
29
+ }
30
+ function mapBus(route) {
31
+ if (route.is_substitute_transport) {
32
+ return RouteTypeEnums_1.MPVRouteTypesEnum.BUS_SUBSTITUTE;
33
+ }
34
+ if (route.is_regional && route.is_night) {
35
+ return RouteTypeEnums_1.MPVRouteTypesEnum.BUS_NIGHT_REGIONAL;
36
+ }
37
+ if (route.is_regional) {
38
+ return RouteTypeEnums_1.MPVRouteTypesEnum.BUS_REGIONAL;
39
+ }
40
+ if (route.is_night) {
41
+ return RouteTypeEnums_1.MPVRouteTypesEnum.BUS_NIGHT;
42
+ }
43
+ return RouteTypeEnums_1.MPVRouteTypesEnum.BUS_CITY;
44
+ }
45
+ //# sourceMappingURL=MpvnetTransportTypeMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MpvnetTransportTypeMapper.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/helpers/MpvnetTransportTypeMapper.ts"],"names":[],"mappings":";;AAiBA,4CAUC;AA3BD,oEAA+E;AAS/E,MAAM,eAAe,GAA0D;IAC3E,CAAC,kCAAiB,CAAC,KAAK,CAAC,EAAE,kCAAiB,CAAC,KAAK;IAClD,CAAC,kCAAiB,CAAC,KAAK,CAAC,EAAE,kCAAiB,CAAC,KAAK;IAClD,CAAC,kCAAiB,CAAC,UAAU,CAAC,EAAE,kCAAiB,CAAC,UAAU;IAC5D,CAAC,kCAAiB,CAAC,KAAK,CAAC,EAAE,kCAAiB,CAAC,KAAK;IAClD,CAAC,kCAAiB,CAAC,SAAS,CAAC,EAAE,kCAAiB,CAAC,SAAS;CAC7D,CAAC;AAEF,SAAgB,gBAAgB,CAAC,KAA0B;IACvD,IAAI,KAAK,CAAC,IAAI,KAAK,kCAAiB,CAAC,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,kCAAiB,CAAC,GAAG,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,eAAe,CAAC,KAAK,CAAC,IAAyB,CAAC,IAAI,kCAAiB,CAAC,KAAK,CAAC;AACvF,CAAC;AAED,SAAS,OAAO,CAAC,KAA0B;IACvC,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;QAChC,OAAO,kCAAiB,CAAC,eAAe,CAAC;IAC7C,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,OAAO,kCAAiB,CAAC,UAAU,CAAC;IACxC,CAAC;IAED,OAAO,kCAAiB,CAAC,IAAI,CAAC;AAClC,CAAC;AAED,SAAS,MAAM,CAAC,KAA0B;IACtC,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;QAChC,OAAO,kCAAiB,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtC,OAAO,kCAAiB,CAAC,kBAAkB,CAAC;IAChD,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,OAAO,kCAAiB,CAAC,YAAY,CAAC;IAC1C,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,OAAO,kCAAiB,CAAC,SAAS,CAAC;IACvC,CAAC;IAED,OAAO,kCAAiB,CAAC,QAAQ,CAAC;AACtC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { DepartureBoardsResponseDTO } from "../dto/DepartureBoardsDTO";
2
+ export declare class MpvnetXmlSerializer {
3
+ private static readonly builder;
4
+ static serialize(dto: DepartureBoardsResponseDTO): string;
5
+ private static buildStopNode;
6
+ private static buildDeparture;
7
+ private static buildInfotext;
8
+ private static formatTblCas;
9
+ private static formatScheduledOffset;
10
+ private static formatHeadsign;
11
+ private static extractTrainNumber;
12
+ private static formatPlatformListCsv;
13
+ private static formatPlatformListTab;
14
+ private static collectPlatformCodes;
15
+ private static formatStopIds;
16
+ }
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MpvnetXmlSerializer = void 0;
7
+ const fast_xml_builder_1 = __importDefault(require("fast-xml-builder"));
8
+ const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
9
+ const InfotextDisplayTypeEnum_1 = require("../domain/InfotextDisplayTypeEnum");
10
+ const HeadsignFormatter_1 = require("../service/helpers/HeadsignFormatter");
11
+ const MpvnetTransportTypeMapper_1 = require("./MpvnetTransportTypeMapper");
12
+ const PRAGUE_TIMEZONE = "Europe/Prague";
13
+ const ARROW_UNICODE = /→/g;
14
+ const ARROW_ASCII = "->";
15
+ const ISO_LOCAL_FORMAT = "YYYY-MM-DDTHH:mm:ss";
16
+ const ISO_LOCAL_OFFSET_FORMAT = "YYYY-MM-DDTHH:mm:ssZ";
17
+ // Omit > from escapes so the literal "->" arrow (mapped from unicode →) survives in the smer attribute.
18
+ const XML_ENTITIES_KEEP_GT = [
19
+ { regex: /&/g, val: "&amp;" },
20
+ { regex: /</g, val: "&lt;" },
21
+ { regex: /'/g, val: "&apos;" },
22
+ { regex: /"/g, val: "&quot;" },
23
+ ];
24
+ class MpvnetXmlSerializer {
25
+ static serialize(dto) {
26
+ const tree = {
27
+ TBL: {
28
+ "@_cas": MpvnetXmlSerializer.formatTblCas(new Date()),
29
+ "@_text": "Odjezdy poskytuje Golemio",
30
+ t: MpvnetXmlSerializer.buildStopNode(dto),
31
+ },
32
+ };
33
+ return MpvnetXmlSerializer.builder.build(tree);
34
+ }
35
+ static buildStopNode(dto) {
36
+ const node = {
37
+ "@_id": MpvnetXmlSerializer.formatStopIds(dto.stops),
38
+ "@_zast": dto.stops[0]?.stop_name ?? "",
39
+ "@_zobraz_stan": "True",
40
+ "@_stan": MpvnetXmlSerializer.formatPlatformListCsv(dto.stops),
41
+ };
42
+ if (dto.departures.length > 0) {
43
+ node.o = dto.departures.map((d) => MpvnetXmlSerializer.buildDeparture(d));
44
+ }
45
+ if (dto.infotexts.length > 0) {
46
+ node.i = dto.infotexts.map((info) => MpvnetXmlSerializer.buildInfotext(info, dto.stops));
47
+ }
48
+ return node;
49
+ }
50
+ static buildDeparture(departure) {
51
+ const lin = departure.route.short_name ?? "";
52
+ const dd = String((0, MpvnetTransportTypeMapper_1.mapTransportType)({
53
+ type: departure.route.type,
54
+ is_night: departure.route.is_night,
55
+ is_regional: departure.route.is_regional,
56
+ is_substitute_transport: departure.route.is_substitute_transport,
57
+ }));
58
+ const out = {};
59
+ if (departure.stop.platform_code) {
60
+ out["@_stan"] = departure.stop.platform_code;
61
+ }
62
+ out["@_lin"] = lin;
63
+ out["@_alias"] = lin;
64
+ out["@_spoj"] = MpvnetXmlSerializer.extractTrainNumber(departure.trip.short_name);
65
+ out["@_smer"] = MpvnetXmlSerializer.formatHeadsign(departure.trip.headsign);
66
+ out["@_odj"] = MpvnetXmlSerializer.formatScheduledOffset(departure.departure_timestamp.scheduled);
67
+ out["@_sled"] = String(departure.delay.is_available);
68
+ out["@_zpoz"] = String(departure.delay.minutes ?? 0);
69
+ out["@_np"] = String(departure.trip.is_wheelchair_accessible ?? false);
70
+ out["@_nad"] = String(departure.route.is_substitute_transport);
71
+ if (departure.trip.is_canceled) {
72
+ out["@_info"] = "nejede";
73
+ }
74
+ if (departure.trip.is_at_stop) {
75
+ out["@_blik"] = "true";
76
+ }
77
+ if (departure.last_stop.name) {
78
+ out["@_pz"] = departure.last_stop.name;
79
+ }
80
+ out["@_dd"] = dd;
81
+ return out;
82
+ }
83
+ static buildInfotext(infotext, stops) {
84
+ const stan = MpvnetXmlSerializer.formatPlatformListTab(stops);
85
+ if (infotext.display_type === InfotextDisplayTypeEnum_1.InfotextDisplayType.General) {
86
+ return { "@_stan": stan, "@_global": "true", "@_ds": "GLOBAL_STATIC", "#text": infotext.text };
87
+ }
88
+ return { "@_stan": stan, "#text": infotext.text };
89
+ }
90
+ static formatTblCas(date) {
91
+ return moment_timezone_1.default.tz(date, PRAGUE_TIMEZONE).format(ISO_LOCAL_FORMAT);
92
+ }
93
+ static formatScheduledOffset(isoString) {
94
+ if (!isoString) {
95
+ return "";
96
+ }
97
+ return moment_timezone_1.default.tz(isoString, PRAGUE_TIMEZONE).format(ISO_LOCAL_OFFSET_FORMAT);
98
+ }
99
+ // Strip the airport pictogram (HeadsignFormatter) and replace the unicode arrow with ASCII for legacy MPVnet panels.
100
+ static formatHeadsign(headsign) {
101
+ return HeadsignFormatter_1.HeadsignFormatter.format(headsign).replace(ARROW_UNICODE, ARROW_ASCII);
102
+ }
103
+ // Trip number is the last numeric run of trip.short_name (e.g. "S9 1234" -> "1234", "1234" -> "1234").
104
+ static extractTrainNumber(shortName) {
105
+ return shortName?.match(/\d+/g)?.pop() ?? "";
106
+ }
107
+ static formatPlatformListCsv(stops) {
108
+ return MpvnetXmlSerializer.collectPlatformCodes(stops).join(",");
109
+ }
110
+ static formatPlatformListTab(stops) {
111
+ return MpvnetXmlSerializer.collectPlatformCodes(stops).join("\t");
112
+ }
113
+ static collectPlatformCodes(stops) {
114
+ const codes = stops.map((s) => s.platform_code ?? "").filter((c) => c.length > 0);
115
+ return [...new Set(codes)].sort();
116
+ }
117
+ static formatStopIds(stops) {
118
+ const ids = stops.map((s) => {
119
+ if (s.asw_id && s.asw_id.node != null && s.asw_id.stop != null) {
120
+ return `${s.asw_id.node}/${s.asw_id.stop}`;
121
+ }
122
+ return s.stop_id;
123
+ });
124
+ return [...new Set(ids)].sort().join(",");
125
+ }
126
+ }
127
+ exports.MpvnetXmlSerializer = MpvnetXmlSerializer;
128
+ MpvnetXmlSerializer.builder = new fast_xml_builder_1.default({
129
+ ignoreAttributes: false,
130
+ attributeNamePrefix: "@_",
131
+ suppressEmptyNode: true,
132
+ suppressBooleanAttributes: false,
133
+ format: false,
134
+ processEntities: true,
135
+ entities: XML_ENTITIES_KEEP_GT,
136
+ });
137
+ //# sourceMappingURL=MpvnetXmlSerializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MpvnetXmlSerializer.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/helpers/MpvnetXmlSerializer.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,9 @@ class V2PIDRouter extends AbstractRouter_1.AbstractRouter {
64
64
  this.router.get("/departureboards", validation, ...this.commonMiddleware("PIDDepartureBoards"), Validation_1.checkErrors,
65
65
  // max-age 5 seconds, stale-while-revalidate 5 seconds
66
66
  this.cacheHeaderMiddleware.getMiddleware(5, 5), this.departureBoardsController.getDepartureBoard);
67
+ this.router.get("/departureboards/xml", validation, ...this.commonMiddleware("PIDDepartureBoardsXml"), Validation_1.checkErrors,
68
+ // max-age 5 seconds, stale-while-revalidate 5 seconds
69
+ this.cacheHeaderMiddleware.getMiddleware(5, 5), this.departureBoardsController.getDepartureBoardXml);
67
70
  };
68
71
  this.commonMiddleware = (name) => [(0, Validation_1.paginationLimitMiddleware)(name)];
69
72
  this.cacheHeaderMiddleware = ioc_1.OutputGatewayContainer.resolve(ioc_1.ContainerToken.CacheHeaderMiddleware);
@@ -1 +1 @@
1
- {"version":3,"file":"V2PIDRouter.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/routers/v2/V2PIDRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"V2PIDRouter.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/routers/v2/V2PIDRouter.ts"],"names":[],"mappings":"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"}
@@ -544,6 +544,9 @@ Všechny tabulky se nachází ve schématu `pid`
544
544
  - název: vehicle-positions.ropidgtfs.refreshPrecomputedTables
545
545
  - název: vehicle-positions.ropidgtfs.refreshPublicGtfsDepartureCache
546
546
  - název: vehicle-positions.vehiclepositions.refreshGTFSTripData
547
+ - název: vehicle-positions.ropidgtfs.refreshGtfsStopsCache
548
+ - název: vehicle-positions.ropidgtfs.refreshGtfsTripStopsCache
549
+ - název: vehicle-positions.ropidgtfs.remapPresetsToGtfsStops
547
550
  - datové zdroje
548
551
  - ROPID FTP
549
552
  - transformace
@@ -636,6 +639,24 @@ Task se stará o aktualizaci statickych dat. Pouští se po dokončení načten
636
639
  ```
637
640
  `road` pokrývá autobusy i trolejbusy (evidenční čísla se mohou překrývat s tramvajemi, proto jsou oddělena). `routeIds` je whitelist číselných identifikátorů náhradních nebo dočasných linek (např. náhradní autobus za metro při výluce nebo mimořádné události), které se mají zobrazovat i bez platného JŘ spoje.
638
641
 
642
+ #### task _RemapPresetsToGtfsStopsTask_
643
+
644
+ Task přemapuje departure presety na aktuální GTFS zastávky a uloží výsledek do databáze. Pouští se automaticky po každém načtení nových GTFS dat.
645
+
646
+ - vstupní rabbitmq fronta
647
+ - název: vehicle-positions.ropidgtfs.remapPresetsToGtfsStops
648
+ - TTL: 59 minut
649
+ - parametry: žádné
650
+ - závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
651
+ - žádné
652
+ - datové zdroje
653
+ - žádné
654
+ - transformace
655
+ - žádné
656
+ - data modely
657
+ - RopidDeparturesPresetsModel `ropid_departures_presets`
658
+ - RopidDeparturesPresetsRopidGTFSStopsModel `ropid_departures_presets_ropidgtfs_stops`
659
+
639
660
  #### task _EnsureCacheTask_
640
661
 
641
662
  Task slouží jako ruční spouštěč obnovení všech cache. Nespouští se automaticky – pouze manuálním odesláním zprávy do fronty.
@@ -887,77 +887,16 @@ paths:
887
887
  tags:
888
888
  - 🚏 PID Departure Boards (v2)
889
889
  parameters:
890
- - name: ids
891
- in: query
892
- description: Get result by GTFS stop_id. Can be used to retrive individual stops and to separate departures of Prague and intercity routes, even if they depart from the same physical stop. A list of GTFS stops can be found in `stops.txt` file of the [GTFS feed](https://opendata.praha.eu/datasets/https%3A%2F%2Fapi.opendata.praha.eu%2Flod%2Fcatalog%2F9a6a1d8e-45b9-41de-b9ae-0bcec7126876).
893
- required: false
894
- schema:
895
- type: string
896
- example: "U458Z101P"
897
- - name: aswIds
898
- in: query
899
- description: "Get result by ASW ID. First part of the number represents the whole node. Usually it groups the stops of the same name or all stops associated with a metro station. Also returns related train stations in the node. The second part of the number is optional and represents individual stops in the node. Use `_` instead of `/` as a separator or encode the slash sign with `%2F`. A list of ASW IDs can be found in [Prague Open data](https://opendata.praha.eu/datasets/https%3A%2F%2Fapi.opendata.praha.eu%2Flod%2Fcatalog%2F6ac8381f-ea19-4ea9-8949-92076809dc5a). ⚠️ Note: combination with `includeMetroTrains` is currently not supported, see [issue pid#222](https://gitlab.com/operator-ict/golemio/code/modules/pid/-/issues/222)."
900
- required: false
901
- schema:
902
- type: string
903
- example: "458_101"
904
- - name: cisIds
905
- in: query
906
- description: Get result by CIS ID. A list of CIS IDs can be found in [Prague Open data](https://opendata.praha.eu/datasets/https%3A%2F%2Fapi.opendata.praha.eu%2Flod%2Fcatalog%2F6ac8381f-ea19-4ea9-8949-92076809dc5a).
907
- required: false
908
- schema:
909
- type: number
910
- example: 28004
911
- - name: names
912
- in: query
913
- description: Get results by exact name of stop (case and whitespace sensitive). May return stops of the same name from different towns. Using `names` in combination with other identifiers will return an intersection of stops with `names` and stops of ASW, CIS or GTFS identifiers in the same node. Use this feature to filter out a subset of stops of the same name while guaranteeing them to be from the desired node only.
914
- required: false
915
- schema:
916
- type: string
917
- example: "Smíchovské nádraží"
918
- - name: minutesBefore
919
- in: query
920
- description: Set the start of interval from which to retrieve departures. Positive numbers are set in past relative to the time of request or `timeFrom` timestamp, negative numbers set the start in the future. Use to compensate for walking distance to a stop. Default is set to 0. Maximum value is 30 because of implemented data retention. Minimum value is -4320 (0 - 3 days GTFS calendar maximum).
921
- required: false
922
- schema:
923
- type: number
924
- example: 10
925
- - name: minutesAfter
926
- in: query
927
- description: Set the end of interval from which to retrieve departures. Positive numbers are set in future relative to the time of request or `timeFrom` timestamp, negative are in the past. The sum of minutesBefore and minutesAfter must be larger than zero. Default is set to 180. Maximum value is 4320 (GTFS calendar maximum). Minimum value is -4350 (0 - 3 days GTFS calendar maximum - 30 minutes data retention).
928
- required: false
929
- schema:
930
- type: number
931
- example: 60
932
- - name: timeFrom
933
- in: query
934
- description: Set initial timestamp for time interval given by `minutesBefore` and `minutesAfter`. Use to simulate query time different from now. Use ISO 8601 time format and URL encoded symbols - `%3A` for `:`, `%2B` for `.`, `%2F` for `+`. Time zone is set according to the `preferredTimezone` parameter. Applicable range is -6 hours +2 days from now.
935
- required: false
936
- schema:
937
- type: string
938
- example: "2021-01-21T06:00:00"
939
- - name: includeMetroTrains
940
- in: query
941
- description: "When selecting a node by `name`, when `true`, will include metro and/or train stops that are a member of the same node. I.e. when querying _Na Knížecí_, setting this to `true` will add the metro station _Anděl_ to results as well because both have the same ASW node number 1040. ⚠️ Note: combination with `aswIds` is currently not supported, see [issue pid#222](https://gitlab.com/operator-ict/golemio/code/modules/pid/-/issues/222)."
942
- required: false
943
- schema:
944
- type: boolean
945
- example: true
946
- - name: airCondition
947
- in: query
948
- description: Enrich departures with vehicle air condition information. Setting to `false` will force all items to be `null`. Useful for disabling the indication of air condition during cold season.
949
- required: false
950
- schema:
951
- type: boolean
952
- example: true
953
- default: true
954
- - name: preferredTimezone
955
- in: query
956
- description: Preferred timezone offset as defined in the IANA Time zone database in the form of Country/City (use an URL encoded slash sign `%2F` or use an underscore _ symbol), default is Europe/Prague
957
- required: false
958
- schema:
959
- type: string
960
- example: "Europe_Prague"
890
+ - $ref: "#/components/parameters/DepartureBoardsIds"
891
+ - $ref: "#/components/parameters/DepartureBoardsAswIds"
892
+ - $ref: "#/components/parameters/DepartureBoardsCisIds"
893
+ - $ref: "#/components/parameters/DepartureBoardsNames"
894
+ - $ref: "#/components/parameters/DepartureBoardsMinutesBefore"
895
+ - $ref: "#/components/parameters/DepartureBoardsMinutesAfter"
896
+ - $ref: "#/components/parameters/DepartureBoardsTimeFrom"
897
+ - $ref: "#/components/parameters/DepartureBoardsIncludeMetroTrains"
898
+ - $ref: "#/components/parameters/DepartureBoardsAirCondition"
899
+ - $ref: "#/components/parameters/DepartureBoardsPreferredTimezone"
961
900
  - name: mode
962
901
  in: query
963
902
  description: >-
@@ -966,72 +905,13 @@ paths:
966
905
  schema:
967
906
  type: string
968
907
  example: "departures"
969
- - name: order
970
- in: query
971
- description: >-
972
- Valid entries: `real` (default), `timetable`. Order results by predicted time including trip delay or by timetable time.
973
- required: false
974
- schema:
975
- type: string
976
- example: "real"
977
- - name: filter
978
- in: query
979
- description: >-
980
- Valid entries: `none` (default), `routeOnce`, `routeOnceFill`, `routeHeadingOnce`, `routeHeadingOnceFill`, `routeHeadingOnceNoGap`, `routeHeadingOnceNoGapFill`. Defines how should be the list of departures returned. `none` returns all departures within the time and item limit. `routeOnce` returns exactly one occurence of departure for each `route_id`. Works best when querying a single stop. `routeHeadingOnce` returns one entry for each pair of `route_id` and `trip_headsign`, i.e. returns departures for routes that have multiple end stops. Works well when quering one or more stops in a node. `...NoGap` will ensure that departures with a distinct trip headsign will not be displayed if they should arrive too far in the future. `...Fill` attributes will behave the same as their namesakes but afterwards will fill the rest of request up to `total/limit` with further departures. Use to have every line/destination represented and have the display filled with departures at the same time.
981
- required: false
982
- schema:
983
- type: string
984
- example: "routeOnce"
985
- - name: skip
986
- in: query
987
- description: |
988
- Filters out trips matching the given states.
989
- Multiple filters can be applied using array syntax, e.g., `&skip[]=canceled&skip[]=atStop`.
990
- Using both `untracked` and `missing` will exclude all untracked vehicles, as missing vehicles are a subset of untracked vehicles.
991
- We recommend using `missing` instead of `untracked`, as skipping all untracked vehicles may result in departures not appearing in the API response until the last few minutes before departure, especially for departure boards near the starting station/stop.
992
- required: false
993
- schema:
994
- type: string
995
- example: "canceled"
996
- enum:
997
- - canceled
998
- - atStop
999
- - untracked
1000
- - missing
1001
- - name: limit
1002
- in: query
1003
- description: Limits the number of items in response. The maximum is 1000 (default value is 20).
1004
- required: false
1005
- schema:
1006
- type: number
1007
- format: int64
1008
- example: 0
1009
- - name: total
1010
- in: query
1011
- description: Sets the number of items that will be queried. Use in conjunction with `offset`. Up to `total - offset`, but not more than `limit` items will be then returned. If unset, is same as `limit`. The maximum is 1000 (default value is 20).
1012
- required: false
1013
- schema:
1014
- type: number
1015
- format: int64
1016
- example: 0
1017
- - name: offset
1018
- in: query
1019
- description: Number of the initial departures that are skipped. Useful for multi-page displays.
1020
- required: false
1021
- schema:
1022
- type: number
1023
- format: int64
1024
- example: 0
1025
- - name: appendHeadsignsLimit
1026
- in: query
1027
- description: >-
1028
- Number of stops before route switch at which headsign is enriched with continuation info.
1029
- When set and a departure has route-switch data, headsign becomes `&lt;headsign&gt; → &lt;next_route&gt; &lt;next_headsign&gt;`.
1030
- required: false
1031
- schema:
1032
- type: integer
1033
- minimum: 0
1034
- example: 3
908
+ - $ref: "#/components/parameters/DepartureBoardsOrder"
909
+ - $ref: "#/components/parameters/DepartureBoardsFilter"
910
+ - $ref: "#/components/parameters/DepartureBoardsSkip"
911
+ - $ref: "#/components/parameters/DepartureBoardsLimit"
912
+ - $ref: "#/components/parameters/DepartureBoardsTotal"
913
+ - $ref: "#/components/parameters/DepartureBoardsOffset"
914
+ - $ref: "#/components/parameters/DepartureBoardsAppendHeadsignsLimit"
1035
915
 
1036
916
  responses:
1037
917
  "200":
@@ -1056,6 +936,89 @@ paths:
1056
936
  "404":
1057
937
  description: Not found
1058
938
 
939
+ /v2/pid/departureboards/xml:
940
+ get:
941
+ summary: "[DEPRECATED] GET Departure Boards (legacy MPVnet XML)"
942
+ description: |
943
+ **DEPRECATED.** Legacy MPVnet XML for ROPID information panels that cannot consume JSON.
944
+ For new integrations use `/v2/pid/departureboards` (JSON).
945
+
946
+ UTF-8, no `<?xml ...?>` prologue. Only `mode=departures` is supported (others return 400).
947
+ Same query parameters and identifier rules as the JSON endpoint
948
+ (`ids` / `cisIds` / `aswIds` / `names`, at least one required, max 100 stops).
949
+
950
+ See the example response below for the exact attribute set.
951
+ deprecated: true
952
+ tags:
953
+ - 🚏 PID Departure Boards (v2)
954
+ parameters:
955
+ - $ref: "#/components/parameters/DepartureBoardsIds"
956
+ - $ref: "#/components/parameters/DepartureBoardsAswIds"
957
+ - $ref: "#/components/parameters/DepartureBoardsCisIds"
958
+ - $ref: "#/components/parameters/DepartureBoardsNames"
959
+ - $ref: "#/components/parameters/DepartureBoardsMinutesBefore"
960
+ - $ref: "#/components/parameters/DepartureBoardsMinutesAfter"
961
+ - $ref: "#/components/parameters/DepartureBoardsTimeFrom"
962
+ - $ref: "#/components/parameters/DepartureBoardsIncludeMetroTrains"
963
+ - $ref: "#/components/parameters/DepartureBoardsAirCondition"
964
+ - $ref: "#/components/parameters/DepartureBoardsPreferredTimezone"
965
+ - name: mode
966
+ in: query
967
+ description: >-
968
+ Only `departures` is supported for this XML endpoint; other values return 400.
969
+ Valid entries: `departures` (default), `arrivals`, `mixed`.
970
+ required: false
971
+ schema:
972
+ type: string
973
+ example: "departures"
974
+ - $ref: "#/components/parameters/DepartureBoardsOrder"
975
+ - $ref: "#/components/parameters/DepartureBoardsFilter"
976
+ - $ref: "#/components/parameters/DepartureBoardsSkip"
977
+ - $ref: "#/components/parameters/DepartureBoardsLimit"
978
+ - $ref: "#/components/parameters/DepartureBoardsTotal"
979
+ - $ref: "#/components/parameters/DepartureBoardsOffset"
980
+ - $ref: "#/components/parameters/DepartureBoardsAppendHeadsignsLimit"
981
+
982
+ responses:
983
+ "200":
984
+ description: |
985
+ Single-line MPVnet XML response. Example body
986
+
987
+ ```xml
988
+ <TBL cas="2026-03-20T15:30:00" text="Odjezdy poskytuje Golemio">
989
+ <t id="458/1,458/2" zast="Smíchovské nádraží" zobraz_stan="True" stan="A,B">
990
+ <o stan="A" lin="129" alias="129" spoj="" smer="Baně"
991
+ odj="2026-03-20T15:31:00+01:00" sled="true" zpoz="0" np="true" nad="false" dd="3"/>
992
+ <o stan="A" lin="5" alias="5" spoj="" smer="Slivenec"
993
+ odj="2026-03-20T15:31:00+01:00" sled="true" zpoz="2" np="false" nad="false"
994
+ pz="Plzeňka" dd="2"/>
995
+ <o stan="B" lin="B" alias="B" spoj="" smer="Černý Most"
996
+ odj="2026-03-20T15:32:00+01:00" sled="true" zpoz="1" np="true" nad="false"
997
+ pz="Radlická" dd="1"/>
998
+ <o stan="A" lin="X22" alias="X22" spoj="" smer="Nádraží Hostivař"
999
+ odj="2026-03-20T15:33:00+01:00" sled="false" zpoz="0" np="false" nad="true"
1000
+ info="nejede" dd="7"/>
1001
+ <i stan="A">Výluka tramvají na Smíchově.</i>
1002
+ </t>
1003
+ </TBL>
1004
+ ```
1005
+ headers:
1006
+ Cache-Control:
1007
+ description: Cache control directive for caching proxies
1008
+ schema:
1009
+ type: string
1010
+ example: public, s-maxage=5, stale-while-revalidate=5
1011
+ content:
1012
+ text/xml; charset=utf-8:
1013
+ schema:
1014
+ type: string
1015
+ "400":
1016
+ $ref: "#/components/responses/BadRequestError"
1017
+ "401":
1018
+ $ref: "#/components/responses/UnauthorizedError"
1019
+ "404":
1020
+ description: Not found
1021
+
1059
1022
  /v3/pid/transferboards:
1060
1023
  get:
1061
1024
  tags:
@@ -2071,6 +2034,162 @@ components:
2071
2034
  - error_status
2072
2035
 
2073
2036
 
2037
+ parameters:
2038
+ DepartureBoardsIds:
2039
+ name: ids
2040
+ in: query
2041
+ description: Get result by GTFS stop_id. Can be used to retrive individual stops and to separate departures of Prague and intercity routes, even if they depart from the same physical stop. A list of GTFS stops can be found in `stops.txt` file of the [GTFS feed](https://opendata.praha.eu/datasets/https%3A%2F%2Fapi.opendata.praha.eu%2Flod%2Fcatalog%2F9a6a1d8e-45b9-41de-b9ae-0bcec7126876).
2042
+ required: false
2043
+ schema:
2044
+ type: string
2045
+ example: "U458Z101P"
2046
+ DepartureBoardsAswIds:
2047
+ name: aswIds
2048
+ in: query
2049
+ description: "Get result by ASW ID. First part of the number represents the whole node. Usually it groups the stops of the same name or all stops associated with a metro station. Also returns related train stations in the node. The second part of the number is optional and represents individual stops in the node. Use `_` instead of `/` as a separator or encode the slash sign with `%2F`. A list of ASW IDs can be found in [Prague Open data](https://opendata.praha.eu/datasets/https%3A%2F%2Fapi.opendata.praha.eu%2Flod%2Fcatalog%2F6ac8381f-ea19-4ea9-8949-92076809dc5a). ⚠️ Note: combination with `includeMetroTrains` is currently not supported, see [issue pid#222](https://gitlab.com/operator-ict/golemio/code/modules/pid/-/issues/222)."
2050
+ required: false
2051
+ schema:
2052
+ type: string
2053
+ example: "458_101"
2054
+ DepartureBoardsCisIds:
2055
+ name: cisIds
2056
+ in: query
2057
+ description: Get result by CIS ID. A list of CIS IDs can be found in [Prague Open data](https://opendata.praha.eu/datasets/https%3A%2F%2Fapi.opendata.praha.eu%2Flod%2Fcatalog%2F6ac8381f-ea19-4ea9-8949-92076809dc5a).
2058
+ required: false
2059
+ schema:
2060
+ type: number
2061
+ example: 28004
2062
+ DepartureBoardsNames:
2063
+ name: names
2064
+ in: query
2065
+ description: Get results by exact name of stop (case and whitespace sensitive). May return stops of the same name from different towns. Using `names` in combination with other identifiers will return an intersection of stops with `names` and stops of ASW, CIS or GTFS identifiers in the same node. Use this feature to filter out a subset of stops of the same name while guaranteeing them to be from the desired node only.
2066
+ required: false
2067
+ schema:
2068
+ type: string
2069
+ example: "Smíchovské nádraží"
2070
+ DepartureBoardsMinutesBefore:
2071
+ name: minutesBefore
2072
+ in: query
2073
+ description: Set the start of interval from which to retrieve departures. Positive numbers are set in past relative to the time of request or `timeFrom` timestamp, negative numbers set the start in the future. Use to compensate for walking distance to a stop. Default is set to 0. Maximum value is 30 because of implemented data retention. Minimum value is -4320 (0 - 3 days GTFS calendar maximum).
2074
+ required: false
2075
+ schema:
2076
+ type: number
2077
+ example: 10
2078
+ DepartureBoardsMinutesAfter:
2079
+ name: minutesAfter
2080
+ in: query
2081
+ description: Set the end of interval from which to retrieve departures. Positive numbers are set in future relative to the time of request or `timeFrom` timestamp, negative are in the past. The sum of minutesBefore and minutesAfter must be larger than zero. Default is set to 180. Maximum value is 4320 (GTFS calendar maximum). Minimum value is -4350 (0 - 3 days GTFS calendar maximum - 30 minutes data retention).
2082
+ required: false
2083
+ schema:
2084
+ type: number
2085
+ example: 60
2086
+ DepartureBoardsTimeFrom:
2087
+ name: timeFrom
2088
+ in: query
2089
+ description: Set initial timestamp for time interval given by `minutesBefore` and `minutesAfter`. Use to simulate query time different from now. Use ISO 8601 time format and URL encoded symbols - `%3A` for `:`, `%2B` for `.`, `%2F` for `+`. Time zone is set according to the `preferredTimezone` parameter. Applicable range is -6 hours +2 days from now.
2090
+ required: false
2091
+ schema:
2092
+ type: string
2093
+ example: "2021-01-21T06:00:00"
2094
+ DepartureBoardsIncludeMetroTrains:
2095
+ name: includeMetroTrains
2096
+ in: query
2097
+ description: "When selecting a node by `name`, when `true`, will include metro and/or train stops that are a member of the same node. I.e. when querying _Na Knížecí_, setting this to `true` will add the metro station _Anděl_ to results as well because both have the same ASW node number 1040. ⚠️ Note: combination with `aswIds` is currently not supported, see [issue pid#222](https://gitlab.com/operator-ict/golemio/code/modules/pid/-/issues/222)."
2098
+ required: false
2099
+ schema:
2100
+ type: boolean
2101
+ example: true
2102
+ DepartureBoardsAirCondition:
2103
+ name: airCondition
2104
+ in: query
2105
+ description: Enrich departures with vehicle air condition information. Setting to `false` will force all items to be `null`. Useful for disabling the indication of air condition during cold season.
2106
+ required: false
2107
+ schema:
2108
+ type: boolean
2109
+ example: true
2110
+ default: true
2111
+ DepartureBoardsPreferredTimezone:
2112
+ name: preferredTimezone
2113
+ in: query
2114
+ description: Preferred timezone offset as defined in the IANA Time zone database in the form of Country/City (use an URL encoded slash sign `%2F` or use an underscore _ symbol), default is Europe/Prague
2115
+ required: false
2116
+ schema:
2117
+ type: string
2118
+ example: "Europe_Prague"
2119
+ DepartureBoardsOrder:
2120
+ name: order
2121
+ in: query
2122
+ description: >-
2123
+ Valid entries: `real` (default), `timetable`. Order results by predicted time including trip delay or by timetable time.
2124
+ required: false
2125
+ schema:
2126
+ type: string
2127
+ example: "real"
2128
+ DepartureBoardsFilter:
2129
+ name: filter
2130
+ in: query
2131
+ description: >-
2132
+ Valid entries: `none` (default), `routeOnce`, `routeOnceFill`, `routeHeadingOnce`, `routeHeadingOnceFill`, `routeHeadingOnceNoGap`, `routeHeadingOnceNoGapFill`. Defines how should be the list of departures returned. `none` returns all departures within the time and item limit. `routeOnce` returns exactly one occurence of departure for each `route_id`. Works best when querying a single stop. `routeHeadingOnce` returns one entry for each pair of `route_id` and `trip_headsign`, i.e. returns departures for routes that have multiple end stops. Works well when quering one or more stops in a node. `...NoGap` will ensure that departures with a distinct trip headsign will not be displayed if they should arrive too far in the future. `...Fill` attributes will behave the same as their namesakes but afterwards will fill the rest of request up to `total/limit` with further departures. Use to have every line/destination represented and have the display filled with departures at the same time.
2133
+ required: false
2134
+ schema:
2135
+ type: string
2136
+ example: "routeOnce"
2137
+ DepartureBoardsSkip:
2138
+ name: skip
2139
+ in: query
2140
+ description: |
2141
+ Filters out trips matching the given states.
2142
+ Multiple filters can be applied using array syntax, e.g., `&skip[]=canceled&skip[]=atStop`.
2143
+ Using both `untracked` and `missing` will exclude all untracked vehicles, as missing vehicles are a subset of untracked vehicles.
2144
+ We recommend using `missing` instead of `untracked`, as skipping all untracked vehicles may result in departures not appearing in the API response until the last few minutes before departure, especially for departure boards near the starting station/stop.
2145
+ required: false
2146
+ schema:
2147
+ type: string
2148
+ example: "canceled"
2149
+ enum:
2150
+ - canceled
2151
+ - atStop
2152
+ - untracked
2153
+ - missing
2154
+ DepartureBoardsLimit:
2155
+ name: limit
2156
+ in: query
2157
+ description: Limits the number of items in response. The maximum is 1000 (default value is 20).
2158
+ required: false
2159
+ schema:
2160
+ type: number
2161
+ format: int64
2162
+ example: 0
2163
+ DepartureBoardsTotal:
2164
+ name: total
2165
+ in: query
2166
+ description: Sets the number of items that will be queried. Use in conjunction with `offset`. Up to `total - offset`, but not more than `limit` items will be then returned. If unset, is same as `limit`. The maximum is 1000 (default value is 20).
2167
+ required: false
2168
+ schema:
2169
+ type: number
2170
+ format: int64
2171
+ example: 0
2172
+ DepartureBoardsOffset:
2173
+ name: offset
2174
+ in: query
2175
+ description: Number of the initial departures that are skipped. Useful for multi-page displays.
2176
+ required: false
2177
+ schema:
2178
+ type: number
2179
+ format: int64
2180
+ example: 0
2181
+ DepartureBoardsAppendHeadsignsLimit:
2182
+ name: appendHeadsignsLimit
2183
+ in: query
2184
+ description: >-
2185
+ Number of stops before route switch at which headsign is enriched with continuation info.
2186
+ When set and a departure has route-switch data, headsign becomes `&lt;headsign&gt; → &lt;next_route&gt; &lt;next_headsign&gt;`.
2187
+ required: false
2188
+ schema:
2189
+ type: integer
2190
+ minimum: 0
2191
+ example: 3
2192
+
2074
2193
  schemas:
2075
2194
  RepeatOnlyTimes:
2076
2195
  title: Repeat Only Times
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/pid",
3
- "version": "5.9.3-dev.2487758126",
3
+ "version": "5.9.3-dev.2498055915",
4
4
  "description": "Golemio PID Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -80,20 +80,13 @@
80
80
  "peerDependencies": {
81
81
  "@golemio/core": "^3.0.7-dev.2 || ^3.0.0"
82
82
  },
83
- "overrides": {
84
- "@google-cloud/storage": {
85
- "fast-xml-parser": "^5.3.4"
86
- },
87
- "@azure/core-xml": {
88
- "fast-xml-parser": "^5.3.4"
89
- }
90
- },
91
83
  "dependencies": {
92
84
  "@golemio/ovapi-gtfs-realtime-bindings": "1.4.0",
93
85
  "@turf/turf": "^6.5.0",
94
86
  "cheap-ruler": "^3.0.2",
95
87
  "csv-parser": "^3.0.0",
96
88
  "csv-stringify": "^5.6.2",
89
+ "fast-xml-builder": "^1.1.5",
97
90
  "html-entities": "^2.6.0",
98
91
  "pg-copy-streams": "^7.0.0"
99
92
  }