@golemio/pid 2.12.10-dev.1266077057 → 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.
- package/db/example/15_vehicle_descriptors.sql +3 -3
- package/db/example/redis/publicDepartureBoardsMock.json +13 -0
- package/db/example/redis/publicVehiclePositionsMock.json +24 -0
- package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.d.ts +4 -3
- package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.js +8 -6
- package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.d.ts +14 -0
- package/dist/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.js +82 -0
- package/dist/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.d.ts +10 -2
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js +81 -10
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/interfaces/IPublicDepartureDto.d.ts +12 -0
- package/dist/integration-engine/ropid-gtfs/interfaces/IPublicDepartureDto.js +3 -0
- package/dist/integration-engine/ropid-gtfs/interfaces/IPublicDepartureDto.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/ioc/Di.js +10 -0
- package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +4 -0
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +4 -0
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.d.ts +7 -0
- package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.js +36 -0
- package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.d.ts +2 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js +9 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/constants.d.ts +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/constants.js +5 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/constants.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js +4 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask.d.ts +21 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask.js +102 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.d.ts +3 -2
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.js +9 -7
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/IRefreshPublicDepartureParams.d.ts +4 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/IRefreshPublicDepartureParams.js +3 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/interfaces/IRefreshPublicDepartureParams.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/RefreshPublicDepartureSchema.d.ts +5 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/RefreshPublicDepartureSchema.js +31 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/schema/RefreshPublicDepartureSchema.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicApiCacheRepository.js +6 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicApiCacheRepository.js.map +1 -1
- package/dist/output-gateway/index.js.map +1 -1
- package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js +2 -1
- package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js.map +1 -1
- package/dist/output-gateway/public/controllers/v1/PublicDepartureBoardsController.d.ts +8 -0
- package/dist/output-gateway/public/controllers/v1/PublicDepartureBoardsController.js +60 -0
- package/dist/output-gateway/public/controllers/v1/PublicDepartureBoardsController.js.map +1 -0
- package/dist/output-gateway/public/controllers/v1/interfaces/PublicParamsInterfaces.d.ts +10 -0
- package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.d.ts +11 -0
- package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.js +72 -0
- package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.js.map +1 -0
- package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.d.ts +1 -0
- package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.js +22 -2
- package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.js.map +1 -1
- package/dist/output-gateway/public/domain/IPublicDepartureTransformInputDto.d.ts +9 -0
- package/dist/output-gateway/public/domain/IPublicDepartureTransformInputDto.js +3 -0
- package/dist/output-gateway/public/domain/IPublicDepartureTransformInputDto.js.map +1 -0
- package/dist/output-gateway/public/domain/PublicApiDepartureInterfaces.d.ts +34 -0
- package/dist/output-gateway/public/domain/PublicApiDepartureInterfaces.js +3 -0
- package/dist/output-gateway/public/domain/PublicApiDepartureInterfaces.js.map +1 -0
- package/dist/output-gateway/public/domain/repository/IGtfsDepartureRepository.d.ts +4 -0
- package/dist/output-gateway/public/domain/repository/IGtfsDepartureRepository.js +3 -0
- package/dist/output-gateway/public/domain/repository/IGtfsDepartureRepository.js.map +1 -0
- package/dist/output-gateway/public/domain/repository/IVehiclePositionsRepository.d.ts +1 -0
- package/dist/output-gateway/public/ioc/Di.js +8 -0
- package/dist/output-gateway/public/ioc/Di.js.map +1 -1
- package/dist/output-gateway/public/ioc/OgModuleToken.d.ts +2 -0
- package/dist/output-gateway/public/ioc/OgModuleToken.js +2 -0
- package/dist/output-gateway/public/ioc/OgModuleToken.js.map +1 -1
- package/dist/output-gateway/public/routers/v1/PublicDeparturesRouter.d.ts +10 -0
- package/dist/output-gateway/public/routers/v1/PublicDeparturesRouter.js +28 -0
- package/dist/output-gateway/public/routers/v1/PublicDeparturesRouter.js.map +1 -0
- package/dist/output-gateway/public/routers/v1/{PublicRouter.d.ts → PublicVehiclePositionsRouter.d.ts} +3 -3
- package/dist/output-gateway/public/routers/v1/{PublicRouter.js → PublicVehiclePositionsRouter.js} +8 -8
- package/dist/output-gateway/public/routers/v1/PublicVehiclePositionsRouter.js.map +1 -0
- package/dist/output-gateway/public/routers/v1/helpers/CustomStopIdGroupValidator.d.ts +5 -0
- package/dist/output-gateway/public/routers/v1/helpers/CustomStopIdGroupValidator.js +42 -0
- package/dist/output-gateway/public/routers/v1/helpers/CustomStopIdGroupValidator.js.map +1 -0
- package/dist/output-gateway/public/service/facade/DepartureBoardFacade.d.ts +17 -0
- package/dist/output-gateway/public/service/facade/DepartureBoardFacade.js +106 -0
- package/dist/output-gateway/public/service/facade/DepartureBoardFacade.js.map +1 -0
- package/dist/output-gateway/public/service/transformations/PublicDepartureTransformation.d.ts +34 -0
- package/dist/output-gateway/public/service/transformations/PublicDepartureTransformation.js +54 -0
- package/dist/output-gateway/public/service/transformations/PublicDepartureTransformation.js.map +1 -0
- package/dist/output-gateway/shared/DepartureCalculator.d.ts +10 -0
- package/dist/output-gateway/shared/DepartureCalculator.js +26 -0
- package/dist/output-gateway/shared/DepartureCalculator.js.map +1 -0
- package/dist/output-gateway/shared/RopidRouterUtils.d.ts +2 -1
- package/dist/output-gateway/shared/RopidRouterUtils.js +4 -3
- package/dist/output-gateway/shared/RopidRouterUtils.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/redis/const.d.ts +1 -0
- package/dist/schema-definitions/ropid-gtfs/redis/const.js +5 -0
- package/dist/schema-definitions/ropid-gtfs/redis/const.js.map +1 -0
- package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto.d.ts +12 -0
- package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto.js +3 -0
- package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto.js.map +1 -0
- package/dist/schema-definitions/ropid-gtfs/redis/schemas/PublicGtfsDepartureDtoSchema.d.ts +4 -0
- package/dist/schema-definitions/ropid-gtfs/redis/schemas/PublicGtfsDepartureDtoSchema.js +69 -0
- package/dist/schema-definitions/ropid-gtfs/redis/schemas/PublicGtfsDepartureDtoSchema.js.map +1 -0
- package/docs/implementation_documentation.md +26 -0
- package/docs/openapi-output.yaml +233 -0
- package/package.json +1 -1
- 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
|
-
(
|
|
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
|
]
|
|
@@ -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.
|
|
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)(
|
|
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,
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAKgD;AAChD,sCAAiF;AACjF,0DAAuC;AACvC,oEAA8D;AAG9D,wEAAqE;AACrE,2EAAoE;AACpE,6EAAwE;AACxE,oFAAoF;AACpF,iEAAwE;AAExE,2EAAwE;AACxE,2EAAwE;AACxE,2EAAwE;AACxE,gFAAuF;
|
|
1
|
+
{"version":3,"file":"RopidGtfsFacade.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/RopidGtfsFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAKgD;AAChD,sCAAiF;AACjF,0DAAuC;AACvC,oEAA8D;AAG9D,wEAAqE;AACrE,2EAAoE;AACpE,6EAAwE;AACxE,oFAAoF;AACpF,iEAAwE;AAExE,+EAA4E;AAC5E,2EAAwE;AACxE,2EAAwE;AACxE,2EAAwE;AACxE,gFAAuF;AAOvF,IAAY,WAMX;AAND,WAAY,WAAW;IACnB,oCAAqB,CAAA;IACrB,sCAAuB,CAAA;IACvB,0CAA2B,CAAA;IAC3B,0CAA2B,CAAA;IAC3B,wDAAyC,CAAA;AAC7C,CAAC,EANW,WAAW,2BAAX,WAAW,QAMtB;AAGM,IAAM,eAAe,6BAArB,MAAM,eAAe;IAOxB,YACyD,mBAAgD,EAErG,2BAAgE,EACX,mBAAiD,EACjE,iBAA6C;QAJrB,wBAAmB,GAAnB,mBAAmB,CAAqB;QAE7F,gCAA2B,GAA3B,2BAA2B,CAA6B;QACH,wBAAmB,GAAnB,mBAAmB,CAAsB;QACzD,sBAAiB,GAAjB,iBAAiB,CAAoB;QAX9E,SAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAkB9B,wBAAmB,GAAG,CAAO,OAAe,EAAE,OAAe,EAAiB,EAAE;YACnF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAEpF,MAAM,WAAW,GAAU,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjB,WAAW,CAAC,IAAI,CAAC,IAAI,sBAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAqB,CAAC,CAAC,WAAW,GAAG,6CAAqB,CAAC,GAAG,GAAG,CAAC,CAAC;YACvH,CAAC,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;YAC1D,MAAM,MAAM,GAA2C,MAAM,UAAU,CAAC,KAAK,CACzE;;;;;qCAKyB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;sCACpB,iBAAS;aAClC,EACD,EAAE,IAAI,EAAE,mBAAS,CAAC,UAAU,CAAC,MAAM,EAAE,CACxC,CAAC;YAEF,aAAG,CAAC,IAAI,CAAC,4BAA4B,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAE3E,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE;gBACxE,MAAM,IAAI,6BAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACtE;QACL,CAAC,CAAA,CAAC;QAEK,kBAAa,GAAG,CAAO,WAAwD,EAAoB,EAAE;YACxG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC;gBACvD,UAAU,EAAE,CAAC,CAAC,mBAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;gBACzD,KAAK,EAAE;oBACH,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC1C,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,IAAI,EAAE,qBAAY,CAAC,KAAK;wBACxB,KAAK,EAAE,sBAAa,CAAC,KAAK;wBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;qBACxB,CAAC,CAAC;iBACN;aACJ,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;YAC1D,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;YAEzC,IAAI;gBACA,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC1C,MAAM,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;gBAEvC,YAAY;gBACZ,MAAM,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAC7C,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACrB,OAAO,EAAE,EAAE,CAAC,OAAO;oBACnB,GAAG,EAAE,+BAAsB,CAAC,QAAQ;oBACpC,IAAI,EAAE,qBAAY,CAAC,YAAY;oBAC/B,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,EAAE,CAAC,OAAO;iBACtB,CAAC,CAAC,EACH,EAAE,WAAW,EAAE,CAAC,EAAE,CACrB,CAAC;gBAEF,MAAM,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC;oBAC3C,WAAW,EAAE,CAAC;oBACd,KAAK,EAAE;wBACH,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;4BAC1C,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,OAAO,EAAE;gCACL,CAAC,mBAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;oCAChB,mDAAmD;oCACnD,EAAE,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE,EAAE;oCACxC,EAAE,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;iCAC5B;6BACJ;yBACJ,CAAC,CAAC;qBACN;iBACJ,CAAC,CAAC;gBAEH,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC;aACf;YAAC,OAAO,GAAG,EAAE;gBACV,aAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACnB,aAAG,CAAC,KAAK,CAAC,8BAA8B,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC1D,MAAM,IAAI,6BAAY,CAAC,IAAI,CAAC,IAAI,GAAG,2BAA2B,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;aACnF;QACL,CAAC,CAAA,CAAC;QAEM,wBAAmB,GAAG,CAAO,MAAoC,EAAE,CAAc,EAAiB,EAAE;YACxG,MAAM,WAAW,GAAa,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mCAAqB,EAAC,KAAK,CAAC,UAAU,CAAC,EAAsB,CAAC,CAAC,CAAC;YACpH,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC,CAAA,CAAC;QAEK,6BAAwB,GAAG,CAAO,CAAc,EAAiB,EAAE;YACtE,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAC1C;gBACI,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC;gBAC5C,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC;gBAC/C,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC;aAC3C,EACD,CAAC,CACJ,CAAC;YACF,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC,CAAA,CAAC;QAzGE,IAAI,CAAC,6BAA6B,GAAG,IAAI,2CAA6B,EAAE,CAAC;QACzE,IAAI,CAAC,sBAAsB,GAAG,IAAI,oCAAsB,EAAE,CAAC;QAC3D,IAAI,CAAC,0BAA0B,GAAG,IAAI,wCAA0B,EAAE,CAAC;IACvE,CAAC;CAuGJ,CAAA;0BAxHY,eAAe;IAD3B,IAAA,qBAAU,GAAE;IASJ,WAAA,IAAA,iBAAM,EAAC,iDAAuB,CAAC,mBAAmB,CAAC,CAAA;IACnD,WAAA,IAAA,iBAAM,EAAC,iDAAuB,CAAC,2BAA2B,CAAC,CAAA;IAE3D,WAAA,IAAA,iBAAM,EAAC,iDAAuB,CAAC,mBAAmB,CAAC,CAAA;IACnD,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,iBAAiB,CAAC,CAAA;qCAJ8C,yCAAmB;QAEhE,yDAA2B;QACkB,kCAAoB;GAXjG,eAAe,CAwH3B"}
|
package/dist/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.d.ts
ADDED
|
@@ -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
|
package/dist/integration-engine/ropid-gtfs/data-access/cache/PublicGtfsDepartureRepository.js.map
ADDED
|
@@ -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"}
|
package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.d.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeparturesRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.ts"],"names":[],"mappings":"
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"IPublicDepartureDto.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/interfaces/IPublicDepartureDto.ts"],"names":[],"mappings":""}
|
|
@@ -9,9 +9,13 @@ const RopidGtfsFacade_1 = require("../RopidGtfsFacade");
|
|
|
9
9
|
const RopidGtfsMetadataRepository_1 = require("../RopidGtfsMetadataRepository");
|
|
10
10
|
const RopidGtfsRepository_1 = require("../data-access/RopidGtfsRepository");
|
|
11
11
|
const BlockStopsRedisRepository_1 = require("../data-access/cache/BlockStopsRedisRepository");
|
|
12
|
+
const PublicGtfsDepartureRepository_1 = require("../data-access/cache/PublicGtfsDepartureRepository");
|
|
12
13
|
const StaticFileRedisRepository_1 = require("../data-access/cache/StaticFileRedisRepository");
|
|
14
|
+
const precomputed_1 = require("../data-access/precomputed");
|
|
13
15
|
const DeparturePresetsFacade_1 = require("../facade/DeparturePresetsFacade");
|
|
16
|
+
const PublicDepartureCacheTransformation_1 = require("../transformations/PublicDepartureCacheTransformation");
|
|
14
17
|
const RopidGTFSTransformation_1 = require("../transformations/RopidGTFSTransformation");
|
|
18
|
+
const RefreshPublicGtfsDepartureCacheTask_1 = require("../workers/timetables/tasks/RefreshPublicGtfsDepartureCacheTask");
|
|
15
19
|
const PrecomputedTablesFacade_1 = require("../workers/timetables/tasks/helpers/PrecomputedTablesFacade");
|
|
16
20
|
const RopidGtfsFactory_1 = require("../workers/timetables/tasks/helpers/RopidGtfsFactory");
|
|
17
21
|
const RopidGtfsContainerToken_1 = require("./RopidGtfsContainerToken");
|
|
@@ -25,9 +29,12 @@ RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContaine
|
|
|
25
29
|
//#region Repositories
|
|
26
30
|
RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.StaticFileRedisRepository, StaticFileRedisRepository_1.StaticFileRedisRepository).registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RopidGtfsRepository, RopidGtfsRepository_1.RopidGtfsRepository);
|
|
27
31
|
RopidGtfsContainer.register(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RopidGtfsMetadataRepository, RopidGtfsMetadataRepository_1.RopidGtfsMetadataRepository);
|
|
32
|
+
RopidGtfsContainer.register(RopidGtfsContainerToken_1.RopidGtfsContainerToken.DepartureRepository, precomputed_1.DeparturesRepository);
|
|
33
|
+
RopidGtfsContainer.register(RopidGtfsContainerToken_1.RopidGtfsContainerToken.PublicGtfsDepartureRepository, PublicGtfsDepartureRepository_1.PublicGtfsDepartureRepository);
|
|
28
34
|
//#endregion
|
|
29
35
|
//#region Transformations
|
|
30
36
|
RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RopidGTFSTransformation, RopidGTFSTransformation_1.RopidGTFSTransformation);
|
|
37
|
+
RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.PublicDepartureCacheTransformation, PublicDepartureCacheTransformation_1.PublicDepartureCacheTransformation);
|
|
31
38
|
//#endregion
|
|
32
39
|
//#region Facade
|
|
33
40
|
RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RopidGtfsFacade, RopidGtfsFacade_1.RopidGtfsFacade);
|
|
@@ -35,4 +42,7 @@ RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContaine
|
|
|
35
42
|
.register(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RopidGtfsFactory, RopidGtfsFactory_1.RopidGtfsFactory, { lifecycle: tsyringe_1.Lifecycle.Transient })
|
|
36
43
|
.registerInstance(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RedisPubSubChannel, new pubsub_1.RedisPubSubChannel(ropid_gtfs_1.RopidGTFS.name));
|
|
37
44
|
RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.DeparturePresetsFacade, DeparturePresetsFacade_1.DeparturePresetsFacade);
|
|
45
|
+
//#endregion
|
|
46
|
+
//#region Tasks
|
|
47
|
+
RopidGtfsContainer.registerSingleton(RopidGtfsContainerToken_1.RopidGtfsContainerToken.RefreshPublicGtfsDepartureCacheTask, RefreshPublicGtfsDepartureCacheTask_1.RefreshPublicGtfsDepartureCacheTask);
|
|
38
48
|
//# sourceMappingURL=Di.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAC1C,uEAA4C;AAC5C,qFAA8F;AAC9F,iEAAoF;AACpF,wDAAqD;AACrD,gFAA6E;AAC7E,4EAAyE;AACzE,8FAA2F;AAC3F,8FAA2F;AAC3F,6EAA0E;AAC1E,wFAAqF;AACrF,yGAAsG;AACtG,2FAAwF;AACxF,uEAAoE;AAEpE,wBAAwB;AACxB,MAAM,kBAAkB,GAAwB,iBAAY,CAAC,oBAAoB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAC1C,uEAA4C;AAC5C,qFAA8F;AAC9F,iEAAoF;AACpF,wDAAqD;AACrD,gFAA6E;AAC7E,4EAAyE;AACzE,8FAA2F;AAC3F,sGAAmG;AACnG,8FAA2F;AAC3F,4DAAkE;AAClE,6EAA0E;AAC1E,8GAA2G;AAC3G,wFAAqF;AACrF,yHAAsH;AACtH,yGAAsG;AACtG,2FAAwF;AACxF,uEAAoE;AAEpE,wBAAwB;AACxB,MAAM,kBAAkB,GAAwB,iBAAY,CAAC,oBAAoB,EAAE,CAAC;AAyC3E,gDAAkB;AAxC3B,YAAY;AAEZ,qBAAqB;AACrB,kBAAkB,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,yBAAyB,EAAE,qDAAyB,CAAC,CAAC;AACnH,YAAY;AAEZ,sBAAsB;AACtB,kBAAkB,CAAC,iBAAiB,CAChC,iDAAuB,CAAC,yBAAyB,EACjD,qDAAyB,CAC5B,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,mBAAmB,EAAE,yCAAmB,CAAC,CAAC;AACtF,kBAAkB,CAAC,QAAQ,CAAC,iDAAuB,CAAC,2BAA2B,EAAE,yDAA2B,CAAC,CAAC;AAC9G,kBAAkB,CAAC,QAAQ,CAAC,iDAAuB,CAAC,mBAAmB,EAAE,kCAAoB,CAAC,CAAC;AAC/F,kBAAkB,CAAC,QAAQ,CAAC,iDAAuB,CAAC,6BAA6B,EAAE,6DAA6B,CAAC,CAAC;AAClH,YAAY;AAEZ,yBAAyB;AACzB,kBAAkB,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,uBAAuB,EAAE,iDAAuB,CAAC,CAAC;AAC/G,kBAAkB,CAAC,iBAAiB,CAChC,iDAAuB,CAAC,kCAAkC,EAC1D,uEAAkC,CACrC,CAAC;AACF,YAAY;AAEZ,gBAAgB;AAChB,kBAAkB,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,eAAe,EAAE,iCAAe,CAAC,CAAC;AAC/F,kBAAkB,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,uBAAuB,EAAE,iDAAuB,CAAC;KACzG,QAAQ,CAAC,iDAAuB,CAAC,gBAAgB,EAAE,mCAAgB,EAAE,EAAE,SAAS,EAAE,oBAAS,CAAC,SAAS,EAAE,CAAC;KACxG,gBAAgB,CAAC,iDAAuB,CAAC,kBAAkB,EAAE,IAAI,2BAAkB,CAAC,sBAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAE1G,kBAAkB,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,sBAAsB,EAAE,+CAAsB,CAAC,CAAC;AAC7G,YAAY;AAEZ,eAAe;AACf,kBAAkB,CAAC,iBAAiB,CAChC,iDAAuB,CAAC,mCAAmC,EAC3D,yEAAmC,CACtC,CAAC"}
|
|
@@ -4,10 +4,14 @@ declare const RopidGtfsContainerToken: {
|
|
|
4
4
|
PrecomputedTablesFacade: symbol;
|
|
5
5
|
StaticFileRedisRepository: symbol;
|
|
6
6
|
RopidGTFSTransformation: symbol;
|
|
7
|
+
PublicDepartureCacheTransformation: symbol;
|
|
7
8
|
RopidGtfsFactory: symbol;
|
|
8
9
|
RedisPubSubChannel: symbol;
|
|
9
10
|
RopidGtfsRepository: symbol;
|
|
11
|
+
DepartureRepository: symbol;
|
|
12
|
+
PublicGtfsDepartureRepository: symbol;
|
|
10
13
|
DeparturePresetsFacade: symbol;
|
|
11
14
|
RopidGtfsFacade: symbol;
|
|
15
|
+
RefreshPublicGtfsDepartureCacheTask: symbol;
|
|
12
16
|
};
|
|
13
17
|
export { RopidGtfsContainerToken };
|
|
@@ -7,11 +7,15 @@ const RopidGtfsContainerToken = {
|
|
|
7
7
|
PrecomputedTablesFacade: Symbol(),
|
|
8
8
|
StaticFileRedisRepository: Symbol(),
|
|
9
9
|
RopidGTFSTransformation: Symbol(),
|
|
10
|
+
PublicDepartureCacheTransformation: Symbol(),
|
|
10
11
|
RopidGtfsFactory: Symbol(),
|
|
11
12
|
RedisPubSubChannel: Symbol(),
|
|
12
13
|
RopidGtfsRepository: Symbol(),
|
|
14
|
+
DepartureRepository: Symbol(),
|
|
15
|
+
PublicGtfsDepartureRepository: Symbol(),
|
|
13
16
|
DeparturePresetsFacade: Symbol(),
|
|
14
17
|
RopidGtfsFacade: Symbol(),
|
|
18
|
+
RefreshPublicGtfsDepartureCacheTask: Symbol(),
|
|
15
19
|
};
|
|
16
20
|
exports.RopidGtfsContainerToken = RopidGtfsContainerToken;
|
|
17
21
|
//# 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,EAAE;IACnC,2BAA2B,EAAE,MAAM,EAAE;IACrC,uBAAuB,EAAE,MAAM,EAAE;IACjC,yBAAyB,EAAE,MAAM,EAAE;IACnC,uBAAuB,EAAE,MAAM,EAAE;IACjC,gBAAgB,EAAE,MAAM,EAAE;IAC1B,kBAAkB,EAAE,MAAM,EAAE;IAC5B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,sBAAsB,EAAE,MAAM,EAAE;IAChC,eAAe,EAAE,MAAM,EAAE;
|
|
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,EAAE;IACnC,2BAA2B,EAAE,MAAM,EAAE;IACrC,uBAAuB,EAAE,MAAM,EAAE;IACjC,yBAAyB,EAAE,MAAM,EAAE;IACnC,uBAAuB,EAAE,MAAM,EAAE;IACjC,kCAAkC,EAAE,MAAM,EAAE;IAC5C,gBAAgB,EAAE,MAAM,EAAE;IAC1B,kBAAkB,EAAE,MAAM,EAAE;IAC5B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,6BAA6B,EAAE,MAAM,EAAE;IACvC,sBAAsB,EAAE,MAAM,EAAE;IAChC,eAAe,EAAE,MAAM,EAAE;IACzB,mCAAmC,EAAE,MAAM,EAAE;CAChD,CAAC;AAEO,0DAAuB"}
|
package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IPublicGtfsDepartureCacheDto } from "../../../schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto";
|
|
2
|
+
import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
|
|
3
|
+
import { IPublicDepartureDto } from "../interfaces/IPublicDepartureDto";
|
|
4
|
+
export declare class PublicDepartureCacheTransformation extends AbstractTransformation<IPublicDepartureDto, IPublicGtfsDepartureCacheDto> {
|
|
5
|
+
name: string;
|
|
6
|
+
protected transformInternal: (inputDto: IPublicDepartureDto) => IPublicGtfsDepartureCacheDto;
|
|
7
|
+
}
|
package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.PublicDepartureCacheTransformation = void 0;
|
|
10
|
+
const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
|
|
11
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
12
|
+
let PublicDepartureCacheTransformation = exports.PublicDepartureCacheTransformation = class PublicDepartureCacheTransformation extends AbstractTransformation_1.AbstractTransformation {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
this.name = "PublicDepartureCacheTransformation";
|
|
16
|
+
this.transformInternal = (inputDto) => {
|
|
17
|
+
var _a, _b;
|
|
18
|
+
const outputDto = {
|
|
19
|
+
stop_id: inputDto.stop_id,
|
|
20
|
+
departure_datetime: inputDto.departure_datetime.toISOString(),
|
|
21
|
+
arrival_datetime: (_b = (_a = inputDto.arrival_datetime) === null || _a === void 0 ? void 0 : _a.toISOString()) !== null && _b !== void 0 ? _b : null,
|
|
22
|
+
route_short_name: inputDto.route_short_name,
|
|
23
|
+
route_type: inputDto.route_type,
|
|
24
|
+
trip_id: inputDto.trip_id,
|
|
25
|
+
stop_sequence: inputDto.stop_sequence,
|
|
26
|
+
platform_code: inputDto.platform_code,
|
|
27
|
+
trip_headsign: inputDto.trip_headsign,
|
|
28
|
+
};
|
|
29
|
+
return outputDto;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
exports.PublicDepartureCacheTransformation = PublicDepartureCacheTransformation = __decorate([
|
|
34
|
+
(0, tsyringe_1.injectable)()
|
|
35
|
+
], PublicDepartureCacheTransformation);
|
|
36
|
+
//# sourceMappingURL=PublicDepartureCacheTransformation.js.map
|
package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PublicDepartureCacheTransformation.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.ts"],"names":[],"mappings":";;;;;;;;;AACA,6GAA0G;AAC1G,iEAAgE;AAIzD,IAAM,kCAAkC,gDAAxC,MAAM,kCAAmC,SAAQ,+CAGvD;IAHM;;QAII,SAAI,GAAG,oCAAoC,CAAC;QAEzC,sBAAiB,GAAG,CAAC,QAA6B,EAAE,EAAE;;YAC5D,MAAM,SAAS,GAAiC;gBAC5C,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,WAAW,EAAE;gBAC7D,gBAAgB,EAAE,MAAA,MAAA,QAAQ,CAAC,gBAAgB,0CAAE,WAAW,EAAE,mCAAI,IAAI;gBAClE,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;gBAC3C,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,aAAa,EAAE,QAAQ,CAAC,aAAa;aACxC,CAAC;YAEF,OAAO,SAAS,CAAC;QACrB,CAAC,CAAC;IACN,CAAC;CAAA,CAAA;6CArBY,kCAAkC;IAD9C,IAAA,qBAAU,GAAE;GACA,kCAAkC,CAqB9C"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { AbstractWorker } from "@golemio/core/dist/integration-engine/workers";
|
|
1
|
+
import { AbstractTask, AbstractWorker } from "@golemio/core/dist/integration-engine/workers";
|
|
2
2
|
export declare class TimetableWorker extends AbstractWorker {
|
|
3
3
|
protected name: string;
|
|
4
4
|
constructor();
|
|
5
|
+
registerTask: (task: AbstractTask<any>) => void;
|
|
5
6
|
}
|