@golemio/pid 2.12.10-dev.1265906013 → 2.12.10-dev.1267493459

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 (110) hide show
  1. package/db/example/15_vehicle_descriptors.sql +3 -3
  2. package/db/example/redis/publicDepartureBoardsMock.json +13 -0
  3. package/db/example/redis/publicVehiclePositionsMock.json +24 -0
  4. package/db/migrations/postgresql/20240424122841-delay-at-past-stops-release-part-1.js +53 -0
  5. package/db/migrations/postgresql/sqls/20240424122841-delay-at-past-stops-release-part-1-down.sql +1 -0
  6. package/db/migrations/postgresql/sqls/20240424122841-delay-at-past-stops-release-part-1-up.sql +98 -0
  7. package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.d.ts +4 -3
  8. package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.js +8 -6
  9. package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.js.map +1 -1
  10. package/dist/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.d.ts +14 -0
  11. package/dist/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.js +82 -0
  12. package/dist/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.js.map +1 -0
  13. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.d.ts +10 -2
  14. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js +81 -10
  15. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js.map +1 -1
  16. package/dist/integration-engine/ropid-gtfs/interfaces/IPublicDepartureDto.d.ts +12 -0
  17. package/dist/integration-engine/ropid-gtfs/interfaces/IPublicDepartureDto.js +3 -0
  18. package/dist/integration-engine/ropid-gtfs/interfaces/IPublicDepartureDto.js.map +1 -0
  19. package/dist/integration-engine/ropid-gtfs/ioc/Di.js +10 -0
  20. package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
  21. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +4 -0
  22. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +4 -0
  23. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
  24. package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.d.ts +7 -0
  25. package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.js +36 -0
  26. package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.js.map +1 -0
  27. package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.d.ts +2 -1
  28. package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js +9 -1
  29. package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js.map +1 -1
  30. package/dist/integration-engine/ropid-gtfs/workers/timetables/constants.d.ts +1 -0
  31. package/dist/integration-engine/ropid-gtfs/workers/timetables/constants.js +5 -0
  32. package/dist/integration-engine/ropid-gtfs/workers/timetables/constants.js.map +1 -0
  33. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js +4 -0
  34. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js.map +1 -1
  35. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask.d.ts +21 -0
  36. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask.js +102 -0
  37. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask.js.map +1 -0
  38. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.d.ts +3 -2
  39. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.js +9 -7
  40. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.js.map +1 -1
  41. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/IRefreshPublicDepartureParams.d.ts +4 -0
  42. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/IRefreshPublicDepartureParams.js +3 -0
  43. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/IRefreshPublicDepartureParams.js.map +1 -0
  44. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/RefreshPublicDepartureSchema.d.ts +5 -0
  45. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/RefreshPublicDepartureSchema.js +31 -0
  46. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/RefreshPublicDepartureSchema.js.map +1 -0
  47. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicApiCacheRepository.js +6 -1
  48. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicApiCacheRepository.js.map +1 -1
  49. package/dist/output-gateway/index.js.map +1 -1
  50. package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js +2 -1
  51. package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js.map +1 -1
  52. package/dist/output-gateway/public/controllers/v1/PublicDepartureBoardsController.d.ts +8 -0
  53. package/dist/output-gateway/public/controllers/v1/PublicDepartureBoardsController.js +60 -0
  54. package/dist/output-gateway/public/controllers/v1/PublicDepartureBoardsController.js.map +1 -0
  55. package/dist/output-gateway/public/controllers/v1/interfaces/PublicParamsInterfaces.d.ts +10 -0
  56. package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.d.ts +11 -0
  57. package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.js +72 -0
  58. package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.js.map +1 -0
  59. package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.d.ts +1 -0
  60. package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.js +22 -2
  61. package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.js.map +1 -1
  62. package/dist/output-gateway/public/domain/IPublicDepartureTransformInputDto.d.ts +9 -0
  63. package/dist/output-gateway/public/domain/IPublicDepartureTransformInputDto.js +3 -0
  64. package/dist/output-gateway/public/domain/IPublicDepartureTransformInputDto.js.map +1 -0
  65. package/dist/output-gateway/public/domain/PublicApiDepartureInterfaces.d.ts +34 -0
  66. package/dist/output-gateway/public/domain/PublicApiDepartureInterfaces.js +3 -0
  67. package/dist/output-gateway/public/domain/PublicApiDepartureInterfaces.js.map +1 -0
  68. package/dist/output-gateway/public/domain/repository/IGtfsDepartureRepository.d.ts +4 -0
  69. package/dist/output-gateway/public/domain/repository/IGtfsDepartureRepository.js +3 -0
  70. package/dist/output-gateway/public/domain/repository/IGtfsDepartureRepository.js.map +1 -0
  71. package/dist/output-gateway/public/domain/repository/IVehiclePositionsRepository.d.ts +1 -0
  72. package/dist/output-gateway/public/ioc/Di.js +8 -0
  73. package/dist/output-gateway/public/ioc/Di.js.map +1 -1
  74. package/dist/output-gateway/public/ioc/OgModuleToken.d.ts +2 -0
  75. package/dist/output-gateway/public/ioc/OgModuleToken.js +2 -0
  76. package/dist/output-gateway/public/ioc/OgModuleToken.js.map +1 -1
  77. package/dist/output-gateway/public/routers/v1/PublicDeparturesRouter.d.ts +10 -0
  78. package/dist/output-gateway/public/routers/v1/PublicDeparturesRouter.js +28 -0
  79. package/dist/output-gateway/public/routers/v1/PublicDeparturesRouter.js.map +1 -0
  80. package/dist/output-gateway/public/routers/v1/{PublicRouter.d.ts → PublicVehiclePositionsRouter.d.ts} +3 -3
  81. package/dist/output-gateway/public/routers/v1/{PublicRouter.js → PublicVehiclePositionsRouter.js} +8 -8
  82. package/dist/output-gateway/public/routers/v1/PublicVehiclePositionsRouter.js.map +1 -0
  83. package/dist/output-gateway/public/routers/v1/helpers/CustomStopIdGroupValidator.d.ts +5 -0
  84. package/dist/output-gateway/public/routers/v1/helpers/CustomStopIdGroupValidator.js +42 -0
  85. package/dist/output-gateway/public/routers/v1/helpers/CustomStopIdGroupValidator.js.map +1 -0
  86. package/dist/output-gateway/public/service/facade/DepartureBoardFacade.d.ts +17 -0
  87. package/dist/output-gateway/public/service/facade/DepartureBoardFacade.js +106 -0
  88. package/dist/output-gateway/public/service/facade/DepartureBoardFacade.js.map +1 -0
  89. package/dist/output-gateway/public/service/transformations/PublicDepartureTransformation.d.ts +34 -0
  90. package/dist/output-gateway/public/service/transformations/PublicDepartureTransformation.js +54 -0
  91. package/dist/output-gateway/public/service/transformations/PublicDepartureTransformation.js.map +1 -0
  92. package/dist/output-gateway/shared/DepartureCalculator.d.ts +10 -0
  93. package/dist/output-gateway/shared/DepartureCalculator.js +26 -0
  94. package/dist/output-gateway/shared/DepartureCalculator.js.map +1 -0
  95. package/dist/output-gateway/shared/RopidRouterUtils.d.ts +2 -1
  96. package/dist/output-gateway/shared/RopidRouterUtils.js +4 -3
  97. package/dist/output-gateway/shared/RopidRouterUtils.js.map +1 -1
  98. package/dist/schema-definitions/ropid-gtfs/redis/const.d.ts +1 -0
  99. package/dist/schema-definitions/ropid-gtfs/redis/const.js +5 -0
  100. package/dist/schema-definitions/ropid-gtfs/redis/const.js.map +1 -0
  101. package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto.d.ts +12 -0
  102. package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto.js +3 -0
  103. package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto.js.map +1 -0
  104. package/dist/schema-definitions/ropid-gtfs/redis/schemas/PublicGtfsDepartureDtoSchema.d.ts +4 -0
  105. package/dist/schema-definitions/ropid-gtfs/redis/schemas/PublicGtfsDepartureDtoSchema.js +69 -0
  106. package/dist/schema-definitions/ropid-gtfs/redis/schemas/PublicGtfsDepartureDtoSchema.js.map +1 -0
  107. package/docs/implementation_documentation.md +26 -0
  108. package/docs/openapi-output.yaml +233 -0
  109. package/package.json +1 -1
  110. package/dist/output-gateway/public/routers/v1/PublicRouter.js.map +0 -1
@@ -7,9 +7,9 @@ INSERT INTO vehiclepositions_vehicle_descriptors (id,state,registration_number,r
7
7
  (15,'zar',9366,1,'8T0 XXXX','ARRIVA STŘEDNÍ ČECHY','SOR','C 10.5','autobus',3,false,false,'Veolia, červená s šedým pruhem',NULL,NULL,NULL,now(),NULL,NULL,now(),NULL),
8
8
  (16,'zar',8582,2,'5SX XXXX','OAD Kolín','Iveco','Crossway LE LINE 12M','autobus',3,false,false,'schéma PID, šedá s červenými svislými pruhy',NULL,NULL,NULL,now(),NULL,NULL,now(),NULL),
9
9
  (17,'zar',8581,2,'5SU XXXX','OAD Kolín','Iveco','Crossway LE LINE 12M','autobus',3,true,false,'schéma PID, šedá s červenými svislými pruhy',NULL,NULL,NULL,now(),NULL,NULL,now(),NULL),
10
- (18,'zar',3927,2,'7AP 7543','Dopravní podnik hl. m. Prahy','SOR','NB 12','autobus',3,true,false,'městské schéma, červeno-bílá',null,null,NULL,now(),NULL,NULL,now(),NULL);
11
-
10
+ (18,'zar',3927,2,'7AP 7543','Dopravní podnik hl. m. Prahy','SOR','NB 12','autobus',3,true,false,'městské schéma, červeno-bílá',null,null,NULL,now(),NULL,NULL,now(),NULL),
11
+ (19,'zar',6837,3,'3AT 3607','Dopravní podnik hl. m. Prahy','SOR','NB 18','autobus',3,false,false,'městské schéma, červeno-bílá',null,null,NULL,now(),NULL,NULL,now(),NULL);
12
12
 
13
13
  -- To be deleted by the test
14
14
  INSERT INTO vehiclepositions_vehicle_descriptors (id,state,registration_number,registration_number_index,license_plate,"operator",manufacturer,"type",traction,gtfs_route_type,is_air_conditioned,has_usb_chargers,paint,thumbnail_url,photo_url,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
15
- (19,'zar',1094,1,'5AC XXXX','ČSAD Česká Lípa','Iveco','Crossway LINE 12M','autobus',3,true,false,'bílá',NULL,NULL,NULL,now() - interval '1 day',NULL,NULL,now() - interval '1 day',NULL);
15
+ (20,'zar',1094,1,'5AC XXXX','ČSAD Česká Lípa','Iveco','Crossway LINE 12M','autobus',3,true,false,'bílá',NULL,NULL,NULL,now() - interval '1 day',NULL,NULL,now() - interval '1 day',NULL);
@@ -0,0 +1,13 @@
1
+ [
2
+ {
3
+ "stop_id": "U476Z2P",
4
+ "departure_datetime": "2024-04-17T17:43:00+02:00",
5
+ "arrival_datetime": "2024-04-17T17:43:00+02:00",
6
+ "route_short_name": "135",
7
+ "route_type": 3,
8
+ "trip_id": "135_1001_240219",
9
+ "stop_sequence": 6,
10
+ "platform_code": "B",
11
+ "trip_headsign": "Chodov"
12
+ }
13
+ ]
@@ -46,5 +46,29 @@
46
46
  "operator": "OAD KOLÍN (Nymburk)",
47
47
  "vehicle_type_id": 4
48
48
  }
49
+ },
50
+ {
51
+ "gtfs_trip_id": "135_1001_240219",
52
+ "route_type": 3,
53
+ "gtfs_route_short_name": "135",
54
+ "lat": 50.07211,
55
+ "lng": 14.44531,
56
+ "bearing": 97,
57
+ "delay": 16,
58
+ "state_position": "on_track",
59
+ "vehicle_id": "service-3-6837",
60
+ "detailed_info": {
61
+ "is_wheelchair_accessible": true,
62
+ "origin_route_name": "135",
63
+ "shape_id": "L135V2",
64
+ "run_number": 10,
65
+ "trip_headsign": "Chodov",
66
+ "shape_dist_traveled": 3.248,
67
+ "last_stop_sequence": 7,
68
+ "origin_timestamp": "2024-04-17T17:34:59+02:00",
69
+ "registration_number": 6837,
70
+ "operator": "DP PRAHA",
71
+ "vehicle_type_id": 3
72
+ }
49
73
  }
50
74
  ]
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var dbm;
4
+ var type;
5
+ var seed;
6
+ var fs = require('fs');
7
+ var path = require('path');
8
+ var Promise;
9
+
10
+ /**
11
+ * We receive the dbmigrate dependency from dbmigrate initially.
12
+ * This enables us to not have to rely on NODE_PATH.
13
+ */
14
+ exports.setup = function(options, seedLink) {
15
+ dbm = options.dbmigrate;
16
+ type = dbm.dataType;
17
+ seed = seedLink;
18
+ Promise = options.Promise;
19
+ };
20
+
21
+ exports.up = function(db) {
22
+ var filePath = path.join(__dirname, 'sqls', '20240424122841-delay-at-past-stops-release-part-1-up.sql');
23
+ return new Promise( function( resolve, reject ) {
24
+ fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
25
+ if (err) return reject(err);
26
+ console.log('received data: ' + data);
27
+
28
+ resolve(data);
29
+ });
30
+ })
31
+ .then(function(data) {
32
+ return db.runSql(data);
33
+ });
34
+ };
35
+
36
+ exports.down = function(db) {
37
+ var filePath = path.join(__dirname, 'sqls', '20240424122841-delay-at-past-stops-release-part-1-down.sql');
38
+ return new Promise( function( resolve, reject ) {
39
+ fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
40
+ if (err) return reject(err);
41
+ console.log('received data: ' + data);
42
+
43
+ resolve(data);
44
+ });
45
+ })
46
+ .then(function(data) {
47
+ return db.runSql(data);
48
+ });
49
+ };
50
+
51
+ exports._meta = {
52
+ "version": 1
53
+ };
@@ -0,0 +1 @@
1
+ drop view v_vehiclepositions_stop_time_delay_prediction;
@@ -0,0 +1,98 @@
1
+ create view v_vehiclepositions_stop_time_delay_prediction as with recursive stop_times as (
2
+ select
3
+ vt.id,
4
+ rst.trip_id,
5
+ vt.provider_source_type,
6
+ vp.delay,
7
+ coalesce(vp.last_stop_sequence, 1) as initial_stop_sequence,
8
+ vp.state_position,
9
+ rst.stop_sequence,
10
+ rst.stop_id,
11
+ rs.platform_code,
12
+ vcs.cis_stop_platform_code,
13
+ rst.computed_dwell_time_seconds,
14
+ case
15
+ when vp.last_stop_sequence is null then vp.delay
16
+ else vp.delay_stop_arrival
17
+ end as arrival_delay_seconds,
18
+ case
19
+ when vp.last_stop_sequence is null then predict_delay_seconds(
20
+ vp.delay,
21
+ rst.computed_dwell_time_seconds,
22
+ vt.provider_source_type
23
+ )
24
+ when vp.state_position = 'at_stop' then case
25
+ when vt.provider_source_type = '1' then greatest(0, vp.delay)
26
+ else vp.delay
27
+ end
28
+ else vp.delay_stop_departure
29
+ end as departure_delay_seconds
30
+ from
31
+ ropidgtfs_stop_times rst
32
+ inner join vehiclepositions_trips vt on vt.gtfs_trip_id = rst.trip_id
33
+ inner join vehiclepositions_positions vp on vp.id = vt.last_position_id
34
+ and (
35
+ vp.valid_to is null
36
+ or vp.valid_to >= now()
37
+ )
38
+ left join ropidgtfs_stops rs on rs.stop_id = rst.stop_id
39
+ left join ropidgtfs_cis_stops rcs on rcs.id = rs.computed_cis_stop_id
40
+ left join vehiclepositions_cis_stops vcs on vcs.rt_trip_id = vt.id
41
+ and vcs.cis_stop_group_id = rcs.cis
42
+ where
43
+ vt.gtfs_trip_id is not null
44
+ and rst.stop_sequence = coalesce(vp.last_stop_sequence, 1)
45
+ union
46
+ all
47
+ select
48
+ previous_row.id,
49
+ rst.trip_id,
50
+ previous_row.provider_source_type,
51
+ previous_row.delay,
52
+ previous_row.initial_stop_sequence,
53
+ previous_row.state_position,
54
+ rst.stop_sequence,
55
+ rst.stop_id,
56
+ rs.platform_code,
57
+ vcs.cis_stop_platform_code,
58
+ rst.computed_dwell_time_seconds,
59
+ case
60
+ when rst.stop_sequence - previous_row.initial_stop_sequence = 1
61
+ and previous_row.state_position != 'at_stop' then previous_row.delay
62
+ else previous_row.departure_delay_seconds
63
+ end as arrival_delay_seconds,
64
+ predict_delay_seconds(
65
+ case
66
+ when rst.stop_sequence - previous_row.initial_stop_sequence = 1
67
+ and previous_row.state_position != 'at_stop' then previous_row.delay
68
+ else previous_row.departure_delay_seconds
69
+ end,
70
+ rst.computed_dwell_time_seconds,
71
+ previous_row.provider_source_type
72
+ ) as departure_delay_seconds
73
+ from
74
+ stop_times previous_row
75
+ inner join ropidgtfs_stop_times rst on rst.trip_id = previous_row.trip_id
76
+ and rst.stop_sequence = previous_row.stop_sequence + 1
77
+ left join ropidgtfs_stops rs on rs.stop_id = rst.stop_id
78
+ left join ropidgtfs_cis_stops rcs on rcs.id = rs.computed_cis_stop_id
79
+ left join vehiclepositions_cis_stops vcs on vcs.rt_trip_id = previous_row.id
80
+ and vcs.cis_stop_group_id = rcs.cis
81
+ )
82
+ select
83
+ trip_id,
84
+ stop_sequence,
85
+ stop_id,
86
+ platform_code,
87
+ cis_stop_platform_code,
88
+ arrival_delay_seconds,
89
+ departure_delay_seconds
90
+ from
91
+ stop_times
92
+ order by
93
+ trip_id,
94
+ stop_sequence;
95
+
96
+ comment on view v_vehiclepositions_stop_time_delay_prediction is '
97
+ This view contains the predicted delay of a vehicle at each stop.
98
+ ';
@@ -1,7 +1,8 @@
1
+ import { DeparturesRepository } from "./data-access/precomputed";
1
2
  import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postgres/IDatabaseConnector";
2
3
  import { Transaction } from "@golemio/core/dist/shared/sequelize";
3
- import { RopidGtfsRepository } from "./data-access/RopidGtfsRepository";
4
4
  import { RopidGtfsMetadataRepository } from "./RopidGtfsMetadataRepository";
5
+ import { RopidGtfsRepository } from "./data-access/RopidGtfsRepository";
5
6
  export declare enum DatasetEnum {
6
7
  PID_GTFS = "PID_GTFS",
7
8
  CIS_STOPS = "CIS_STOPS",
@@ -12,14 +13,14 @@ export declare enum DatasetEnum {
12
13
  export declare class RopidGtfsFacade {
13
14
  private ropidGtfsRepository;
14
15
  private ropidGtfsMetadataRepository;
16
+ private departureRepository;
15
17
  private databaseConnector;
16
18
  private name;
17
19
  /** Precomputed data repositories */
18
- private departuresRepository;
19
20
  private minMaxStopSequencesRepository;
20
21
  private tripScheduleRepository;
21
22
  private servicesCalendarRepository;
22
- constructor(ropidGtfsRepository: RopidGtfsRepository, ropidGtfsMetadataRepository: RopidGtfsMetadataRepository, databaseConnector: IDatabaseConnector);
23
+ constructor(ropidGtfsRepository: RopidGtfsRepository, ropidGtfsMetadataRepository: RopidGtfsMetadataRepository, departureRepository: DeparturesRepository, databaseConnector: IDatabaseConnector);
23
24
  checkSavedTmpTables: (dataset: string, version: number) => Promise<void>;
24
25
  replaceTables: (datasetInfo: Array<{
25
26
  dataset: string;
@@ -34,11 +34,11 @@ const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
34
34
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
35
35
  const sequelize_1 = __importDefault(require("@golemio/core/dist/shared/sequelize"));
36
36
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
37
+ const RopidGtfsMetadataRepository_1 = require("./RopidGtfsMetadataRepository");
37
38
  const RopidGtfsRepository_1 = require("./data-access/RopidGtfsRepository");
38
39
  const SourceTableSuffixEnum_1 = require("./helpers/SourceTableSuffixEnum");
39
40
  const RopidGtfsContainerToken_1 = require("./ioc/RopidGtfsContainerToken");
40
41
  const HelperTypes_1 = require("./workers/timetables/tasks/helpers/HelperTypes");
41
- const RopidGtfsMetadataRepository_1 = require("./RopidGtfsMetadataRepository");
42
42
  var DatasetEnum;
43
43
  (function (DatasetEnum) {
44
44
  DatasetEnum["PID_GTFS"] = "PID_GTFS";
@@ -48,9 +48,10 @@ var DatasetEnum;
48
48
  DatasetEnum["DEPARTURES_PRESETS"] = "DEPARTURES_PRESETS";
49
49
  })(DatasetEnum || (exports.DatasetEnum = DatasetEnum = {}));
50
50
  let RopidGtfsFacade = exports.RopidGtfsFacade = class RopidGtfsFacade {
51
- constructor(ropidGtfsRepository, ropidGtfsMetadataRepository, databaseConnector) {
51
+ constructor(ropidGtfsRepository, ropidGtfsMetadataRepository, departureRepository, databaseConnector) {
52
52
  this.ropidGtfsRepository = ropidGtfsRepository;
53
53
  this.ropidGtfsMetadataRepository = ropidGtfsMetadataRepository;
54
+ this.departureRepository = departureRepository;
54
55
  this.databaseConnector = databaseConnector;
55
56
  this.name = this.constructor.name;
56
57
  this.checkSavedTmpTables = (dataset, version) => __awaiter(this, void 0, void 0, function* () {
@@ -133,9 +134,8 @@ let RopidGtfsFacade = exports.RopidGtfsFacade = class RopidGtfsFacade {
133
134
  this.minMaxStopSequencesRepository["tableName"],
134
135
  this.tripScheduleRepository["tableName"],
135
136
  ], t);
136
- yield this.departuresRepository.replaceByTmp(t);
137
+ yield this.departureRepository.replaceByTmp(t);
137
138
  });
138
- this.departuresRepository = new precomputed_1.DeparturesRepository();
139
139
  this.minMaxStopSequencesRepository = new precomputed_1.MinMaxStopSequencesRepository();
140
140
  this.tripScheduleRepository = new precomputed_1.TripScheduleRepository();
141
141
  this.servicesCalendarRepository = new precomputed_1.ServicesCalendarRepository();
@@ -145,8 +145,10 @@ exports.RopidGtfsFacade = RopidGtfsFacade = __decorate([
145
145
  (0, tsyringe_1.injectable)(),
146
146
  __param(0, (0, tsyringe_1.inject)(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RopidGtfsRepository)),
147
147
  __param(1, (0, tsyringe_1.inject)(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RopidGtfsMetadataRepository)),
148
- __param(2, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.PostgresConnector)),
148
+ __param(2, (0, tsyringe_1.inject)(RopidGtfsContainerToken_1.RopidGtfsContainerToken.DepartureRepository)),
149
+ __param(3, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.PostgresConnector)),
149
150
  __metadata("design:paramtypes", [RopidGtfsRepository_1.RopidGtfsRepository,
150
- RopidGtfsMetadataRepository_1.RopidGtfsMetadataRepository, Object])
151
+ RopidGtfsMetadataRepository_1.RopidGtfsMetadataRepository,
152
+ precomputed_1.DeparturesRepository, Object])
151
153
  ], RopidGtfsFacade);
152
154
  //# sourceMappingURL=RopidGtfsFacade.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RopidGtfsFacade.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/RopidGtfsFacade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RopidGtfsFacade.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/RopidGtfsFacade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { IRefreshPublicDepartureParams } from "../../workers/timetables/tasks/interfaces/IRefreshPublicDepartureParams";
2
+ import { IPublicGtfsDepartureCacheDto } from "../../../../schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto";
3
+ import { RedisModel } from "@golemio/core/dist/integration-engine/models/RedisModel";
4
+ export declare class PublicGtfsDepartureRepository extends RedisModel {
5
+ static NAMESPACE_PREFIX: string;
6
+ constructor();
7
+ /**
8
+ * Save new departures for a stop and
9
+ * - remove all older departures
10
+ * - remove departures that are in the same time range as the new ones
11
+ * (to prevent duplicates and to keep the cache clean and up-to-date)
12
+ */
13
+ replaceDeparturesForStop(departures: IPublicGtfsDepartureCacheDto[], stopId: string, intervalParams: Required<IRefreshPublicDepartureParams>): Promise<void>;
14
+ }
@@ -0,0 +1,82 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
+ return new (P || (P = Promise))(function (resolve, reject) {
14
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18
+ });
19
+ };
20
+ var PublicGtfsDepartureRepository_1;
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.PublicGtfsDepartureRepository = void 0;
23
+ const const_1 = require("../../../../schema-definitions/ropid-gtfs/redis/const");
24
+ const PublicGtfsDepartureDtoSchema_1 = require("../../../../schema-definitions/ropid-gtfs/redis/schemas/PublicGtfsDepartureDtoSchema");
25
+ const RedisModel_1 = require("@golemio/core/dist/integration-engine/models/RedisModel");
26
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
27
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
28
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
29
+ let PublicGtfsDepartureRepository = exports.PublicGtfsDepartureRepository = PublicGtfsDepartureRepository_1 = class PublicGtfsDepartureRepository extends RedisModel_1.RedisModel {
30
+ constructor() {
31
+ super("GtfsDepartureRepository", {
32
+ decodeDataAfterGet: JSON.parse,
33
+ encodeDataBeforeSave: JSON.stringify,
34
+ isKeyConstructedFromData: false,
35
+ prefix: PublicGtfsDepartureRepository_1.NAMESPACE_PREFIX,
36
+ }, new golemio_validator_1.JSONSchemaValidator("PublicGtfsDepartureRepositoryValidator", PublicGtfsDepartureDtoSchema_1.PublicGtfsDepartureDtoSchema));
37
+ }
38
+ /**
39
+ * Save new departures for a stop and
40
+ * - remove all older departures
41
+ * - remove departures that are in the same time range as the new ones
42
+ * (to prevent duplicates and to keep the cache clean and up-to-date)
43
+ */
44
+ replaceDeparturesForStop(departures, stopId, intervalParams) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ try {
47
+ yield this.validator.Validate(departures);
48
+ }
49
+ catch (err) {
50
+ throw new golemio_errors_1.ValidationError("Error while validating departures", this.constructor.name, err);
51
+ }
52
+ try {
53
+ const sortedSetKey = `${this.prefix}:${stopId}`;
54
+ const pipeline = this.connection.pipeline();
55
+ // Automatically remove departures that are older than 3 hours to keep the cache clean
56
+ pipeline.zremrangebyscore(sortedSetKey, "-inf", new Date().getTime() / 1000 - 3 * 3600);
57
+ const firstDepartureScore = new Date(departures[0].departure_datetime).getTime() / 1000;
58
+ const lastDepartureScore = new Date(departures[departures.length - 1].departure_datetime).getTime() / 1000;
59
+ // Remove departures that are in the same time range
60
+ pipeline.zremrangebyscore(sortedSetKey, firstDepartureScore, lastDepartureScore);
61
+ for (const departure of departures) {
62
+ const departureScore = new Date(departure.departure_datetime).getTime() / 1000;
63
+ pipeline.zadd(sortedSetKey, departureScore, JSON.stringify(departure));
64
+ }
65
+ pipeline.expire(sortedSetKey, intervalParams.intervalToHours * 3600);
66
+ yield pipeline.exec();
67
+ }
68
+ catch (err) {
69
+ if (err instanceof golemio_errors_1.AbstractGolemioError) {
70
+ throw err;
71
+ }
72
+ throw new golemio_errors_1.GeneralError(`${this.constructor.name}: error while saving departures`, this.constructor.name, err);
73
+ }
74
+ });
75
+ }
76
+ };
77
+ PublicGtfsDepartureRepository.NAMESPACE_PREFIX = const_1.PUBLIC_DEPARTURE_NAMESPACE_PREFIX;
78
+ exports.PublicGtfsDepartureRepository = PublicGtfsDepartureRepository = PublicGtfsDepartureRepository_1 = __decorate([
79
+ (0, tsyringe_1.injectable)(),
80
+ __metadata("design:paramtypes", [])
81
+ ], PublicGtfsDepartureRepository);
82
+ //# sourceMappingURL=PublicGtfsDepartureRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublicGtfsDepartureRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,iFAAgF;AAEhF,uIAA0G;AAC1G,wFAAqF;AACrF,6EAA+G;AAC/G,mFAAkF;AAClF,iEAAgE;AAGzD,IAAM,6BAA6B,6EAAnC,MAAM,6BAA8B,SAAQ,uBAAU;IAGzD;QACI,KAAK,CACD,yBAAyB,EACzB;YACI,kBAAkB,EAAE,IAAI,CAAC,KAAK;YAC9B,oBAAoB,EAAE,IAAI,CAAC,SAAS;YACpC,wBAAwB,EAAE,KAAK;YAC/B,MAAM,EAAE,+BAA6B,CAAC,gBAAgB;SACzD,EACD,IAAI,uCAAmB,CAAC,wCAAwC,EAAE,2DAA4B,CAAC,CAClG,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACU,wBAAwB,CACjC,UAA0C,EAC1C,MAAc,EACd,cAAuD;;YAEvD,IAAI;gBACA,MAAM,IAAI,CAAC,SAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;aAC9C;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,gCAAe,CAAC,mCAAmC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;aAC9F;YAED,IAAI;gBACA,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAE5C,sFAAsF;gBACtF,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gBAExF,MAAM,mBAAmB,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;gBACxF,MAAM,kBAAkB,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;gBAE3G,oDAAoD;gBACpD,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;gBAEjF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;oBAChC,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;oBAC/E,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;iBAC1E;gBAED,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;gBACrE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;aACzB;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,GAAG,YAAY,qCAAoB,EAAE;oBACrC,MAAM,GAAG,CAAC;iBACb;gBAED,MAAM,IAAI,6BAAY,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,iCAAiC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;aACjH;QACL,CAAC;KAAA;;AA3Da,8CAAgB,GAAG,yCAAiC,AAApC,CAAqC;wCAD1D,6BAA6B;IADzC,IAAA,qBAAU,GAAE;;GACA,6BAA6B,CA6DzC"}
@@ -1,9 +1,17 @@
1
+ import { IPublicDepartureDto } from "../../interfaces/IPublicDepartureDto";
2
+ import { IRefreshPublicDepartureParams } from "../../workers/timetables/tasks/interfaces/IRefreshPublicDepartureParams";
3
+ import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
4
+ import { ILogger } from "@golemio/core/dist/helpers/logger";
1
5
  import { IModel, PostgresModel } from "@golemio/core/dist/integration-engine/models";
2
- import { SourceTableSuffixEnum } from "../../helpers/SourceTableSuffixEnum";
3
6
  import { Transaction } from "@golemio/core/dist/shared/sequelize";
7
+ import { SourceTableSuffixEnum } from "../../helpers/SourceTableSuffixEnum";
4
8
  export declare class DeparturesRepository extends PostgresModel implements IModel {
5
- constructor();
9
+ private config;
10
+ private logger;
11
+ constructor(config: ISimpleConfig, logger: ILogger);
6
12
  createAndPopulate: (sourceTableSuffix: SourceTableSuffixEnum) => Promise<void>;
13
+ countDeparturesForPublicCache: (intervalParams: Required<IRefreshPublicDepartureParams>) => Promise<number>;
14
+ getDepaturesForPublicCache: (page: number, pageSize: number, intervalParams: Required<IRefreshPublicDepartureParams>) => Promise<IPublicDepartureDto[]>;
7
15
  replaceByTmp: (transaction: Transaction) => Promise<void>;
8
16
  analyze: () => Promise<void>;
9
17
  }
@@ -1,4 +1,16 @@
1
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
+ };
2
14
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
15
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
16
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -13,13 +25,15 @@ exports.DeparturesRepository = void 0;
13
25
  const RouteTypeEnums_1 = require("../../../../helpers/RouteTypeEnums");
14
26
  const const_1 = require("../../../../schema-definitions/const");
15
27
  const precomputed_1 = require("../../../../schema-definitions/ropid-gtfs/models/precomputed");
16
- const config_1 = require("@golemio/core/dist/integration-engine/config");
17
- const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
28
+ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
18
29
  const models_1 = require("@golemio/core/dist/integration-engine/models");
30
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
19
31
  const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
32
+ const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
33
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
20
34
  const SourceTableSuffixEnum_1 = require("../../helpers/SourceTableSuffixEnum");
21
- class DeparturesRepository extends models_1.PostgresModel {
22
- constructor() {
35
+ let DeparturesRepository = exports.DeparturesRepository = class DeparturesRepository extends models_1.PostgresModel {
36
+ constructor(config, logger) {
23
37
  super("DeparturesRepository", {
24
38
  pgTableName: precomputed_1.DeparturesModel.TABLE_NAME,
25
39
  pgSchema: const_1.PG_SCHEMA,
@@ -27,8 +41,11 @@ class DeparturesRepository extends models_1.PostgresModel {
27
41
  attributesToRemove: ["id", "created_at", "updated_at"],
28
42
  savingType: "insertOnly",
29
43
  }, new golemio_validator_1.JSONSchemaValidator("DeparturesRepository", precomputed_1.DeparturesModel.jsonSchema));
44
+ this.config = config;
45
+ this.logger = logger;
30
46
  this.createAndPopulate = (sourceTableSuffix) => __awaiter(this, void 0, void 0, function* () {
31
- const timeConstraintLiteral = config_1.config.NODE_ENV !== "test" ? `WHERE gtfs_timestamp(t.arrival_time, t4.date) > now() - interval '6 hours'` : "";
47
+ const nodeEnv = this.config.getValue("env.NODE_ENV", "development");
48
+ const timeConstraintLiteral = nodeEnv !== "test" ? `WHERE gtfs_timestamp(t.arrival_time, t4.date) > now() - interval '6 hours'` : "";
32
49
  /* eslint-disable max-len */
33
50
  const sql = `
34
51
  SELECT
@@ -89,10 +106,59 @@ class DeparturesRepository extends models_1.PostgresModel {
89
106
  });
90
107
  }
91
108
  catch (err) {
92
- helpers_1.log.error(err);
109
+ this.logger.error(err);
93
110
  throw err;
94
111
  }
95
112
  });
113
+ this.countDeparturesForPublicCache = (intervalParams) => __awaiter(this, void 0, void 0, function* () {
114
+ try {
115
+ return yield this.sequelizeModel.count({
116
+ where: {
117
+ departure_datetime: {
118
+ [sequelize_1.Op.between]: [
119
+ sequelize_1.Sequelize.literal(`now() + interval '${intervalParams.intervalFromHours} hours'`),
120
+ sequelize_1.Sequelize.literal(`now() + interval '${intervalParams.intervalToHours} hours'`),
121
+ ],
122
+ },
123
+ },
124
+ });
125
+ }
126
+ catch (err) {
127
+ throw new golemio_errors_1.GeneralError("Error while getting number of departures", this.constructor.name, err);
128
+ }
129
+ });
130
+ this.getDepaturesForPublicCache = (page, pageSize, intervalParams) => __awaiter(this, void 0, void 0, function* () {
131
+ try {
132
+ return yield this.sequelizeModel.findAll({
133
+ attributes: [
134
+ "stop_id",
135
+ "departure_datetime",
136
+ "arrival_datetime",
137
+ "route_short_name",
138
+ "route_type",
139
+ "trip_id",
140
+ "stop_sequence",
141
+ "platform_code",
142
+ "trip_headsign",
143
+ ],
144
+ where: {
145
+ departure_datetime: {
146
+ [sequelize_1.Op.between]: [
147
+ sequelize_1.Sequelize.literal(`now() + interval '${intervalParams.intervalFromHours} hours'`),
148
+ sequelize_1.Sequelize.literal(`now() + interval '${intervalParams.intervalToHours} hours'`),
149
+ ],
150
+ },
151
+ },
152
+ order: [["departure_datetime", "ASC"]],
153
+ offset: page * pageSize,
154
+ limit: pageSize,
155
+ raw: true,
156
+ });
157
+ }
158
+ catch (err) {
159
+ throw new golemio_errors_1.GeneralError("Error while getting departures for public cache", this.constructor.name, err);
160
+ }
161
+ });
96
162
  this.replaceByTmp = (transaction) => __awaiter(this, void 0, void 0, function* () {
97
163
  try {
98
164
  const tableName = precomputed_1.DeparturesModel.TABLE_NAME;
@@ -106,7 +172,7 @@ class DeparturesRepository extends models_1.PostgresModel {
106
172
  DROP TABLE ${dropTableName} CASCADE;`, { transaction });
107
173
  }
108
174
  catch (err) {
109
- helpers_1.log.error(err);
175
+ this.logger.error(err);
110
176
  throw err;
111
177
  }
112
178
  });
@@ -115,11 +181,16 @@ class DeparturesRepository extends models_1.PostgresModel {
115
181
  yield this.sequelizeModel.sequelize.query(`analyze ${const_1.PG_SCHEMA}.${precomputed_1.DeparturesModel.TABLE_NAME}${SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp};`);
116
182
  }
117
183
  catch (err) {
118
- helpers_1.log.error(err);
184
+ this.logger.error(err);
119
185
  throw err;
120
186
  }
121
187
  });
122
188
  }
123
- }
124
- exports.DeparturesRepository = DeparturesRepository;
189
+ };
190
+ exports.DeparturesRepository = DeparturesRepository = __decorate([
191
+ (0, tsyringe_1.injectable)(),
192
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
193
+ __param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
194
+ __metadata("design:paramtypes", [Object, Object])
195
+ ], DeparturesRepository);
125
196
  //# sourceMappingURL=DeparturesRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeparturesRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uEAA4D;AAC5D,gEAAuC;AACvC,8FAAqE;AACrE,yEAAsE;AACtE,2EAAoE;AACpE,yEAAqF;AACrF,mFAAkF;AAClF,+EAA4E;AAG5E,MAAa,oBAAqB,SAAQ,sBAAa;IACnD;QACI,KAAK,CACD,sBAAsB,EACtB;YACI,WAAW,EAAE,6BAAe,CAAC,UAAU;YACvC,QAAQ,EAAE,iBAAS;YACnB,yBAAyB,EAAE,6BAAe,CAAC,cAAc;YACzD,kBAAkB,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC;YACtD,UAAU,EAAE,YAAY;SAC3B,EACD,IAAI,uCAAmB,CAAC,sBAAsB,EAAE,6BAAe,CAAC,UAAU,CAAC,CAC9E,CAAC;QAGC,sBAAiB,GAAG,CAAO,iBAAwC,EAAiB,EAAE;YACzF,MAAM,qBAAqB,GACvB,eAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,4EAA4E,CAAC,CAAC,CAAC,EAAE,CAAC;YAEnH,4BAA4B;YAC5B,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAiCmB,iBAAiB;2CACb,iBAAiB;2CACjB,iBAAiB;;;8CAGd,iBAAiB;4CACnB,iBAAiB;gDACb,iBAAiB;gDACjB,iBAAiB;;cAEnD,qBAAqB,EAAE,CAAC;YAC9B,2BAA2B;YAE3B,IAAI;gBACA,MAAM,SAAS,GAAG,6BAAe,CAAC,UAAU,CAAC;gBAC7C,MAAM,YAAY,GAAG,SAAS,GAAG,6CAAqB,CAAC,GAAG,CAAC;gBAE3D,MAAM,IAAI,CAAC,cAAc,CAAC,SAAU,CAAC,KAAK,CACtC;2CAC2B,iBAAS;uCACb,YAAY;+BACpB,YAAY,UAAU,SAAS;8BAChC,YAAY,IAAI,GAAG,GAAG,EACpC;oBACI,YAAY,EAAE;wBACV,gBAAgB,EAAE,kCAAiB,CAAC,iBAAiB;qBACxD;iBACJ,CACJ,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACV,aAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM,GAAG,CAAC;aACb;QACL,CAAC,CAAA,CAAC;QAEK,iBAAY,GAAG,CAAO,WAAwB,EAAiB,EAAE;YACpE,IAAI;gBACA,MAAM,SAAS,GAAG,6BAAe,CAAC,UAAU,CAAC;gBAC7C,MAAM,YAAY,GAAG,SAAS,GAAG,6CAAqB,CAAC,GAAG,CAAC;gBAC3D,MAAM,aAAa,GAAG,SAAS,GAAG,6CAAqB,CAAC,IAAI,CAAC;gBAE7D,MAAM,IAAI,CAAC,cAAc,CAAC,SAAU,CAAC,KAAK,CACtC;2CAC2B,iBAAS;uBAC7B,SAAS;8BACF,SAAS,cAAc,aAAa;8BACpC,YAAY,cAAc,SAAS;6BACpC,aAAa,WAAW,EACrC,EAAE,WAAW,EAAE,CAClB,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACV,aAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM,GAAG,CAAC;aACb;QACL,CAAC,CAAA,CAAC;QAEK,YAAO,GAAG,GAAwB,EAAE;YACvC,IAAI;gBACA,MAAM,IAAI,CAAC,cAAc,CAAC,SAAU,CAAC,KAAK,CACtC,WAAW,iBAAS,IAAI,6BAAe,CAAC,UAAU,GAAG,6CAAqB,CAAC,GAAG,GAAG,CACpF,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACV,aAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM,GAAG,CAAC;aACb;QACL,CAAC,CAAA,CAAC;IAzGF,CAAC;CA0GJ;AAvHD,oDAuHC"}
1
+ {"version":3,"file":"DeparturesRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { GTFSRouteTypeEnum } from "../../../helpers/RouteTypeEnums";
2
+ export interface IPublicDepartureDto {
3
+ stop_id: string;
4
+ departure_datetime: Date;
5
+ arrival_datetime: Date | null;
6
+ route_short_name: string;
7
+ route_type: GTFSRouteTypeEnum;
8
+ trip_id: string;
9
+ stop_sequence: number;
10
+ platform_code: string | null;
11
+ trip_headsign: string;
12
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IPublicDepartureDto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPublicDepartureDto.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/interfaces/IPublicDepartureDto.ts"],"names":[],"mappings":""}