@golemio/pid 4.0.1 → 4.0.2-dev.1982076656
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/README.md +1 -1
- package/db/example/redis/gtfsStopsCacheMock.json +8 -0
- package/db/example/redis/jisCacheMock.json +31 -0
- package/db/migrations/postgresql/20250716143052-add-stop-name-to-combined-stop-times.js +53 -0
- package/db/migrations/postgresql/sqls/20250716143052-add-stop-name-to-combined-stop-times-down.sql +47 -0
- package/db/migrations/postgresql/sqls/20250716143052-add-stop-name-to-combined-stop-times-up.sql +47 -0
- package/dist/helpers/GtfsStopParser.d.ts +2 -0
- package/dist/helpers/GtfsStopParser.js +11 -8
- package/dist/helpers/GtfsStopParser.js.map +1 -1
- package/dist/helpers/jis/JISInfotextSeverityLevelPriority.d.ts +6 -0
- package/dist/helpers/jis/JISInfotextSeverityLevelPriority.js +11 -0
- package/dist/helpers/jis/JISInfotextSeverityLevelPriority.js.map +1 -0
- package/dist/input-gateway/vehicle-positions/VehiclePositionsController.js +0 -1
- package/dist/input-gateway/vehicle-positions/VehiclePositionsController.js.map +1 -1
- package/dist/integration-engine/jis/ioc/Di.js +10 -0
- package/dist/integration-engine/jis/ioc/Di.js.map +1 -1
- package/dist/integration-engine/jis/ioc/JISContainerToken.d.ts +4 -0
- package/dist/integration-engine/jis/ioc/JISContainerToken.js +5 -0
- package/dist/integration-engine/jis/ioc/JISContainerToken.js.map +1 -1
- package/dist/integration-engine/jis/repositories/JISInfotextsRedisRepository.d.ts +9 -0
- package/dist/integration-engine/jis/repositories/JISInfotextsRedisRepository.js +86 -0
- package/dist/integration-engine/jis/repositories/JISInfotextsRedisRepository.js.map +1 -0
- package/dist/integration-engine/jis/repositories/JISInfotextsRepository.d.ts +6 -1
- package/dist/integration-engine/jis/repositories/JISInfotextsRepository.js +50 -2
- package/dist/integration-engine/jis/repositories/JISInfotextsRepository.js.map +1 -1
- package/dist/integration-engine/jis/transformations/JISInfotextCacheTranformation.d.ts +7 -0
- package/dist/integration-engine/jis/transformations/JISInfotextCacheTranformation.js +37 -0
- package/dist/integration-engine/jis/transformations/JISInfotextCacheTranformation.js.map +1 -0
- package/dist/integration-engine/jis/workers/JISWorker.js +1 -0
- package/dist/integration-engine/jis/workers/JISWorker.js.map +1 -1
- package/dist/integration-engine/jis/workers/tasks/RefreshJISInfotextsCacheTask.d.ts +13 -0
- package/dist/integration-engine/jis/workers/tasks/RefreshJISInfotextsCacheTask.js +47 -0
- package/dist/integration-engine/jis/workers/tasks/RefreshJISInfotextsCacheTask.js.map +1 -0
- package/dist/integration-engine/jis/workers/tasks/RefreshJISInfotextsTask.d.ts +1 -2
- package/dist/integration-engine/jis/workers/tasks/RefreshJISInfotextsTask.js +5 -4
- package/dist/integration-engine/jis/workers/tasks/RefreshJISInfotextsTask.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/RopidGTFSCisStopsModel.d.ts +18 -0
- package/dist/integration-engine/ropid-gtfs/RopidGTFSCisStopsModel.js +44 -0
- package/dist/integration-engine/ropid-gtfs/RopidGTFSCisStopsModel.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/RopidGTFSStopsModel.d.ts +5 -1
- package/dist/integration-engine/ropid-gtfs/RopidGTFSStopsModel.js +24 -0
- package/dist/integration-engine/ropid-gtfs/RopidGTFSStopsModel.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/data-access/cache/DelayComputationRedisRepository.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/index.d.ts +1 -0
- package/dist/integration-engine/ropid-gtfs/index.js +1 -0
- package/dist/integration-engine/ropid-gtfs/index.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/ioc/Di.js +8 -0
- package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +3 -0
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +3 -0
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/transformations/RopidDeparturesPresetsTransformation.js +1 -1
- package/dist/integration-engine/ropid-gtfs/transformations/RopidDeparturesPresetsTransformation.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js +8 -5
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshGtfsStopsCacheTask.d.ts +12 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshGtfsStopsCacheTask.js +44 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RefreshGtfsStopsCacheTask.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/data-access/cache/GtfsStopsRedisRepository.d.ts +12 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/data-access/cache/GtfsStopsRedisRepository.js +87 -0
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/data-access/cache/GtfsStopsRedisRepository.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/interfaces/TripRepositoryInterfaces.d.ts +2 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateTrainDelayTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicStopTimeCacheTask.js +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicStopTimeCacheTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PublicApiTripTransformation.js +2 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PublicApiTripTransformation.js.map +1 -1
- package/dist/output-gateway/index.js +1 -0
- package/dist/output-gateway/index.js.map +1 -1
- package/dist/output-gateway/jis/data-access/cache/JISInfotextsRedisRepository.d.ts +17 -0
- package/dist/output-gateway/jis/data-access/cache/JISInfotextsRedisRepository.js +113 -0
- package/dist/output-gateway/jis/data-access/cache/JISInfotextsRedisRepository.js.map +1 -0
- package/dist/output-gateway/jis/ioc/Di.js +2 -2
- package/dist/output-gateway/jis/ioc/Di.js.map +1 -1
- package/dist/output-gateway/jis/ioc/OgJisToken.d.ts +2 -0
- package/dist/output-gateway/jis/ioc/OgJisToken.js +2 -0
- package/dist/output-gateway/jis/ioc/OgJisToken.js.map +1 -1
- package/dist/output-gateway/pid/controllers/v3/V3TransferBoardsController.js.map +1 -1
- package/dist/output-gateway/pid/controllers/v4/V4TransferBoardsController.d.ts +17 -0
- package/dist/output-gateway/pid/controllers/v4/V4TransferBoardsController.js +147 -0
- package/dist/output-gateway/pid/controllers/v4/V4TransferBoardsController.js.map +1 -0
- package/dist/output-gateway/pid/controllers/v4/interfaces/ITransferBoardsParams.d.ts +14 -0
- package/dist/output-gateway/pid/controllers/v4/interfaces/ITransferBoardsParams.js +3 -0
- package/dist/output-gateway/pid/controllers/v4/interfaces/ITransferBoardsParams.js.map +1 -0
- package/dist/output-gateway/pid/domain/InfotextInterfaces.d.ts +5 -0
- package/dist/output-gateway/pid/helpers/JISInfotextStopSuppressionFilter.d.ts +4 -1
- package/dist/output-gateway/pid/helpers/JISInfotextStopSuppressionFilter.js +7 -1
- package/dist/output-gateway/pid/helpers/JISInfotextStopSuppressionFilter.js.map +1 -1
- package/dist/output-gateway/pid/helpers/TransferBoardFilter.d.ts +5 -0
- package/dist/output-gateway/pid/helpers/TransferBoardFilter.js +33 -0
- package/dist/output-gateway/pid/helpers/TransferBoardFilter.js.map +1 -0
- package/dist/output-gateway/pid/helpers/TransferBoardSorter.d.ts +6 -0
- package/dist/output-gateway/pid/helpers/TransferBoardSorter.js +65 -0
- package/dist/output-gateway/pid/helpers/TransferBoardSorter.js.map +1 -0
- package/dist/output-gateway/pid/index.d.ts +47 -0
- package/dist/output-gateway/pid/index.js.map +1 -1
- package/dist/output-gateway/pid/ioc/Di.js +62 -6
- package/dist/output-gateway/pid/ioc/Di.js.map +1 -1
- package/dist/output-gateway/pid/ioc/OgPidToken.d.ts +11 -0
- package/dist/output-gateway/pid/ioc/OgPidToken.js +11 -0
- package/dist/output-gateway/pid/ioc/OgPidToken.js.map +1 -1
- package/dist/output-gateway/pid/routers/index.d.ts +1 -0
- package/dist/output-gateway/pid/routers/index.js +3 -1
- package/dist/output-gateway/pid/routers/index.js.map +1 -1
- package/dist/output-gateway/pid/routers/v4/V4PIDRouter.d.ts +16 -0
- package/dist/output-gateway/pid/routers/v4/V4PIDRouter.js +67 -0
- package/dist/output-gateway/pid/routers/v4/V4PIDRouter.js.map +1 -0
- package/dist/output-gateway/pid/service/facade/InfotextFacade.d.ts +7 -2
- package/dist/output-gateway/pid/service/facade/InfotextFacade.js +29 -4
- package/dist/output-gateway/pid/service/facade/InfotextFacade.js.map +1 -1
- package/dist/output-gateway/pid/service/facade/StopFacade.d.ts +12 -3
- package/dist/output-gateway/pid/service/facade/StopFacade.js +43 -7
- package/dist/output-gateway/pid/service/facade/StopFacade.js.map +1 -1
- package/dist/output-gateway/pid/service/facade/TransferFacade.d.ts +11 -9
- package/dist/output-gateway/pid/service/facade/TransferFacade.js +117 -14
- package/dist/output-gateway/pid/service/facade/TransferFacade.js.map +1 -1
- package/dist/output-gateway/pid/service/helpers/PlatformCodeResolver.d.ts +7 -1
- package/dist/output-gateway/pid/service/helpers/PlatformCodeResolver.js +12 -0
- package/dist/output-gateway/pid/service/helpers/PlatformCodeResolver.js.map +1 -1
- package/dist/output-gateway/pid/service/transformations/JISInfotextCacheTransferTransformation.d.ts +13 -0
- package/dist/output-gateway/pid/service/transformations/JISInfotextCacheTransferTransformation.js +31 -0
- package/dist/output-gateway/pid/service/transformations/JISInfotextCacheTransferTransformation.js.map +1 -0
- package/dist/output-gateway/pid/service/transformations/TransferDepartureCacheTransformation.d.ts +27 -0
- package/dist/output-gateway/pid/service/transformations/TransferDepartureCacheTransformation.js +75 -0
- package/dist/output-gateway/pid/service/transformations/TransferDepartureCacheTransformation.js.map +1 -0
- package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.d.ts +1 -1
- package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.js +4 -4
- package/dist/output-gateway/public/data-access/redis/PublicGtfsDepartureRepository.js.map +1 -1
- package/dist/output-gateway/public/ioc/Di.js +1 -1
- package/dist/output-gateway/public/ioc/Di.js.map +1 -1
- package/dist/output-gateway/ropid-gtfs/data-access/redis/GtfsStopsRedisRepository.d.ts +13 -0
- package/dist/output-gateway/ropid-gtfs/data-access/redis/GtfsStopsRedisRepository.js +83 -0
- package/dist/output-gateway/ropid-gtfs/data-access/redis/GtfsStopsRedisRepository.js.map +1 -0
- package/dist/output-gateway/shared/constants/route-version.d.ts +2 -1
- package/dist/output-gateway/shared/constants/route-version.js +1 -0
- package/dist/output-gateway/shared/constants/route-version.js.map +1 -1
- package/dist/output-gateway/{public → shared}/service/VPSubscriber.d.ts +4 -2
- package/dist/output-gateway/{public → shared}/service/VPSubscriber.js +1 -1
- package/dist/output-gateway/shared/service/VPSubscriber.js.map +1 -0
- package/dist/schema-definitions/jis/redis/const.d.ts +1 -0
- package/dist/schema-definitions/jis/redis/const.js +2 -1
- package/dist/schema-definitions/jis/redis/const.js.map +1 -1
- package/dist/schema-definitions/jis/redis/interfaces/IJISInfotextDto.d.ts +17 -0
- package/dist/schema-definitions/jis/redis/interfaces/IJISInfotextDto.js +3 -0
- package/dist/schema-definitions/jis/redis/interfaces/IJISInfotextDto.js.map +1 -0
- package/dist/schema-definitions/jis/redis/schemas/JISInfotextDtoSchema.d.ts +3 -0
- package/dist/schema-definitions/jis/redis/schemas/JISInfotextDtoSchema.js +59 -0
- package/dist/schema-definitions/jis/redis/schemas/JISInfotextDtoSchema.js.map +1 -0
- package/dist/schema-definitions/ropid-departures-presets/index.d.ts +1 -0
- package/dist/schema-definitions/ropid-departures-presets/index.js +3 -0
- package/dist/schema-definitions/ropid-departures-presets/index.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/interfaces/IStopCisDto.d.ts +16 -0
- package/dist/schema-definitions/ropid-gtfs/interfaces/IStopCisDto.js +3 -0
- package/dist/schema-definitions/ropid-gtfs/interfaces/IStopCisDto.js.map +1 -0
- package/dist/schema-definitions/ropid-gtfs/interfaces/IStopDto.d.ts +1 -0
- package/dist/schema-definitions/ropid-gtfs/models/StopCisDto.d.ts +58 -0
- package/dist/schema-definitions/ropid-gtfs/models/StopCisDto.js +69 -0
- package/dist/schema-definitions/ropid-gtfs/models/StopCisDto.js.map +1 -0
- package/dist/schema-definitions/ropid-gtfs/redis/const.d.ts +1 -0
- package/dist/schema-definitions/ropid-gtfs/redis/const.js +2 -1
- package/dist/schema-definitions/ropid-gtfs/redis/const.js.map +1 -1
- package/dist/schema-definitions/vehicle-positions/models/views/PublicStopTimeModel.d.ts +3 -2
- package/dist/schema-definitions/vehicle-positions/models/views/PublicStopTimeModel.js +4 -0
- package/dist/schema-definitions/vehicle-positions/models/views/PublicStopTimeModel.js.map +1 -1
- package/dist/schema-definitions/vehicle-positions/models/views/interfaces/IPublicStopTimeDto.d.ts +1 -0
- package/dist/schema-definitions/vehicle-positions/redis/interfaces/IPublicApiCacheDto.d.ts +2 -0
- package/dist/schema-definitions/vehicle-positions/redis/interfaces/IPublicStopTimeCacheDto.d.ts +1 -0
- package/dist/schema-definitions/vehicle-positions/redis/schemas/PublicApiCacheDtoSchema.js +8 -0
- package/dist/schema-definitions/vehicle-positions/redis/schemas/PublicApiCacheDtoSchema.js.map +1 -1
- package/dist/schema-definitions/vehicle-positions/redis/schemas/PublicStopTimeCacheDtoSchema.js +4 -1
- package/dist/schema-definitions/vehicle-positions/redis/schemas/PublicStopTimeCacheDtoSchema.js.map +1 -1
- package/docs/asyncapi.yaml +45 -0
- package/docs/cache/types/redis.md +82 -2
- package/docs/jis/index.md +15 -5
- package/docs/openapi-input.yaml +13 -2
- package/docs/openapi-output.yaml +326 -4
- package/package.json +2 -2
- package/dist/output-gateway/public/service/VPSubscriber.js.map +0 -1
package/docs/jis/index.md
CHANGED
|
@@ -123,9 +123,11 @@ flowchart TB
|
|
|
123
123
|
subgraph "Golemio VP Integration Engine"
|
|
124
124
|
golemio_refresh_events_task["`RefreshJISEventsTask`"];
|
|
125
125
|
golemio_refresh_infotexts_task["`RefreshJISInfotextsTask`"];
|
|
126
|
+
golemio_refresh_infotexts_cache_task["`RefreshJISInfotextsCacheTask`"];
|
|
126
127
|
end
|
|
127
128
|
|
|
128
129
|
vp_pg[("`VP PostgreSQL`")];
|
|
130
|
+
vp_redis[("`VP Redis (Valkey)`")];
|
|
129
131
|
end
|
|
130
132
|
|
|
131
133
|
vymi_events_controller_create --> vymi_get_events;
|
|
@@ -134,8 +136,8 @@ flowchart TB
|
|
|
134
136
|
vymi_infotexts_controller_create --> vymi_get_infotexts;
|
|
135
137
|
vymi_infotexts_controller_update --> vymi_get_infotexts;
|
|
136
138
|
|
|
137
|
-
vymi_get_events
|
|
138
|
-
vymi_get_infotexts
|
|
139
|
+
vymi_get_events <-- "`SELECT aktuálních událostí z tabulek vehicle-positions.pid.jis_events a vehicle-positions.pid.jis_events_ropidgtfs_routes`" --> vymi_pg;
|
|
140
|
+
vymi_get_infotexts <-- "`SELECT aktuálních infotextů z tabulek vehicle-positions.pid.jis_infotexts a vehicle-positions.pid.jis_infotexts_ropidgtfs_stops`" --> vymi_pg;
|
|
139
141
|
|
|
140
142
|
vymi_get_events --> golemio_api_post_events;
|
|
141
143
|
vymi_get_infotexts --> golemio_api_post_infotexts;
|
|
@@ -151,9 +153,12 @@ flowchart TB
|
|
|
151
153
|
|
|
152
154
|
golemio_refresh_events_task -- "`UPSERT do tabulek vehicle-positions.pid.jis_events a vehicle-positions.pid.jis_events_ropidgtfs_routes`" --> vp_pg;
|
|
153
155
|
golemio_refresh_infotexts_task -- "`UPSERT do tabulek vehicle-positions.pid.jis_infotexts a vehicle-positions.pid.jis_infotexts_ropidgtfs_stops`" --> vp_pg;
|
|
156
|
+
golemio_refresh_infotexts_task --> golemio_refresh_infotexts_cache_task;
|
|
157
|
+
|
|
158
|
+
golemio_refresh_infotexts_cache_task -- "`Aktualizace cache jisCache:infotexts:* a jisCache:stop-infotexts:*`" --> vp_redis;
|
|
154
159
|
```
|
|
155
160
|
|
|
156
|
-
Formát zasílaných dat je dále více popsán v implementační dokumentaci ([události](../implementation_documentation.md#jis-events-1), [infotexty](../implementation_documentation.md#jis-infotexts-1)), stejně tak jako odkazy na [Input Gateway OpenAPI](../implementation_documentation.md#input-api) a popis [uložení dat](../implementation_documentation.md#uložení-dat) včetně databázového schema a popisu retence.
|
|
161
|
+
Formát zasílaných dat je dále více popsán v implementační dokumentaci ([události](../implementation_documentation.md#jis-events-1), [infotexty](../implementation_documentation.md#jis-infotexts-1)), stejně tak jako odkazy na [Input Gateway OpenAPI](../implementation_documentation.md#input-api) a popis [uložení dat](../implementation_documentation.md#uložení-dat) včetně databázového schema a popisu retence. Data infotextů jsou dále cachovány - tento proces je popsán v dokumentaci [Redis cache](../cache/types/redis.md#cache-pro-api-přestupních-tabulí-transfer-boards).
|
|
157
162
|
|
|
158
163
|
## Pasivní načítání (pull) dat
|
|
159
164
|
|
|
@@ -200,6 +205,7 @@ flowchart TB
|
|
|
200
205
|
golemio_fetch_infotexts_task["`FetchJISInfotextsTask`"];
|
|
201
206
|
golemio_refresh_events_task["`RefreshJISEventsTask`"];
|
|
202
207
|
golemio_refresh_infotexts_task["`RefreshJISInfotextsTask`"];
|
|
208
|
+
golemio_refresh_infotexts_cache_task["`RefreshJISInfotextsCacheTask`"];
|
|
203
209
|
|
|
204
210
|
%% invisible unicode char due to https://github.com/orgs/community/discussions/106690
|
|
205
211
|
golemio_api_get_events["`HTTPS GET s API klíčem na https://api-vymi.golemio.cz/v1/exports/events/custom-format`"];
|
|
@@ -207,10 +213,11 @@ flowchart TB
|
|
|
207
213
|
end
|
|
208
214
|
|
|
209
215
|
vp_pg[("`VP PostgreSQL`")];
|
|
216
|
+
vp_redis[("`VP Redis (Valkey)`")];
|
|
210
217
|
end
|
|
211
218
|
|
|
212
|
-
vymi_get_events
|
|
213
|
-
vymi_get_infotexts
|
|
219
|
+
vymi_get_events <-- "`SELECT aktuálních událostí z tabulek vehicle-positions.pid.jis_events a vehicle-positions.pid.jis_events_ropidgtfs_routes`" --> vymi_pg;
|
|
220
|
+
vymi_get_infotexts <-- "`SELECT aktuálních infotextů z tabulek vehicle-positions.pid.jis_infotexts a vehicle-positions.pid.jis_infotexts_ropidgtfs_stops`" --> vymi_pg;
|
|
214
221
|
|
|
215
222
|
golemio_rabbit_fetch_events --> golemio_fetch_events_task;
|
|
216
223
|
golemio_rabbit_fetch_infotexts --> golemio_fetch_infotexts_task;
|
|
@@ -231,6 +238,9 @@ flowchart TB
|
|
|
231
238
|
|
|
232
239
|
golemio_refresh_events_task -- "`UPSERT do tabulek vehicle-positions.pid.jis_events a vehicle-positions.pid.jis_events_ropidgtfs_routes`" --> vp_pg;
|
|
233
240
|
golemio_refresh_infotexts_task -- "`UPSERT do tabulek vehicle-positions.pid.jis_infotexts a vehicle-positions.pid.jis_infotexts_ropidgtfs_stops`" --> vp_pg;
|
|
241
|
+
golemio_refresh_infotexts_task --> golemio_refresh_infotexts_cache_task;
|
|
242
|
+
|
|
243
|
+
golemio_refresh_infotexts_cache_task -- "`Aktualizace cache jisCache:infotexts:* a jisCache:stop-infotexts:*`" --> vp_redis;
|
|
234
244
|
```
|
|
235
245
|
|
|
236
246
|
Zdroj a formát dat pro aktivní stahování jsou dále více popsány v implementační dokumentaci ([události](../implementation_documentation.md#jis-events), [infotexty](../implementation_documentation.md#jis-infotexts)), stejně tak jako [worker a tasky](../implementation_documentation.md#jisworker) a popis [uložení dat](../implementation_documentation.md#uložení-dat) včetně databázového schema a popisu retence.
|
package/docs/openapi-input.yaml
CHANGED
|
@@ -453,6 +453,12 @@ components:
|
|
|
453
453
|
type: array
|
|
454
454
|
items:
|
|
455
455
|
type: object
|
|
456
|
+
required:
|
|
457
|
+
- routeName
|
|
458
|
+
- note
|
|
459
|
+
- apiVersion
|
|
460
|
+
- route
|
|
461
|
+
- query
|
|
456
462
|
properties:
|
|
457
463
|
routeName:
|
|
458
464
|
type: string
|
|
@@ -469,6 +475,9 @@ components:
|
|
|
469
475
|
query:
|
|
470
476
|
type: string
|
|
471
477
|
example: "?minutesAfter=300&limit=8&mode=departures&cisIds=40110"
|
|
478
|
+
isTesting:
|
|
479
|
+
type: boolean
|
|
480
|
+
example: true
|
|
472
481
|
JISEvents:
|
|
473
482
|
title: JIS events
|
|
474
483
|
type: array
|
|
@@ -831,14 +840,16 @@ components:
|
|
|
831
840
|
"note": "Tablo Zahradní město z centra (APEX)",
|
|
832
841
|
"apiVersion": 2,
|
|
833
842
|
"route": "/pid/departureboards",
|
|
834
|
-
"query": "?minutesAfter=40&limit=6&mode=departures&filter=routeHeadingOnceNoGapFill&order=real&aswIds=2781_2&aswIds=2781_52&skip=atStop&airCondition=true"
|
|
843
|
+
"query": "?minutesAfter=40&limit=6&mode=departures&filter=routeHeadingOnceNoGapFill&order=real&aswIds=2781_2&aswIds=2781_52&skip=atStop&airCondition=true",
|
|
844
|
+
"isTesting": true
|
|
835
845
|
},
|
|
836
846
|
{
|
|
837
847
|
"routeName": "apex-zahradnimesto-6048-kopie",
|
|
838
848
|
"note": "Tablo Zahradní město z centra (APEX)",
|
|
839
849
|
"apiVersion": 2,
|
|
840
850
|
"route": "/pid/departureboards",
|
|
841
|
-
"query": "?minutesAfter=40&limit=6&mode=departures&filter=routeHeadingOnceNoGapFill&order=real&aswIds=2781_2&aswIds=2781_52&skip=atStop&airCondition=true"
|
|
851
|
+
"query": "?minutesAfter=40&limit=6&mode=departures&filter=routeHeadingOnceNoGapFill&order=real&aswIds=2781_2&aswIds=2781_52&skip=atStop&airCondition=true",
|
|
852
|
+
"isTesting": false
|
|
842
853
|
}
|
|
843
854
|
]
|
|
844
855
|
JISEventsExample:
|
package/docs/openapi-output.yaml
CHANGED
|
@@ -36,6 +36,9 @@ tags:
|
|
|
36
36
|
- name: 🚏 PID Departure Boards (v3) - internal
|
|
37
37
|
description: Endpoints for internal use
|
|
38
38
|
|
|
39
|
+
- name: 🚏 PID Departure Boards (v4)
|
|
40
|
+
description: <img src="https://img.shields.io/badge/opendata-available-green" alt="golemioapi-opendata-badge" /> <img src="https://img.shields.io/badge/stability-experimental-orange" alt="golemioapi-stability-badge" />
|
|
41
|
+
|
|
39
42
|
- name: 🗓️ Public GTFS Static Lookup (v2)
|
|
40
43
|
description: <img src="https://img.shields.io/badge/opendata-available-green" alt="golemioapi-opendata-badge" />
|
|
41
44
|
|
|
@@ -1375,6 +1378,329 @@ paths:
|
|
|
1375
1378
|
type: string
|
|
1376
1379
|
example: ["U454Z301"]
|
|
1377
1380
|
|
|
1381
|
+
/v4/pid/transferboards:
|
|
1382
|
+
get:
|
|
1383
|
+
tags:
|
|
1384
|
+
- 🚏 PID Departure Boards (v4)
|
|
1385
|
+
summary: GET Transfer Boards
|
|
1386
|
+
parameters:
|
|
1387
|
+
- name: cisId
|
|
1388
|
+
in: query
|
|
1389
|
+
description: |
|
|
1390
|
+
CIS identifier of the stop or node. A list of CIS IDs can be found in [Prague Open data](https://opendata.praha.eu/datasets/https%3A%2F%2Fapi.opendata.praha.eu%2Flod%2Fcatalog%2F6ac8381f-ea19-4ea9-8949-92076809dc5a).
|
|
1391
|
+
Includes departures from all stops at the given CIS ID.
|
|
1392
|
+
Required if `aswId` is not provided. Only one of `cisId` or `aswId` can be used.
|
|
1393
|
+
required: false
|
|
1394
|
+
examples:
|
|
1395
|
+
cisId1:
|
|
1396
|
+
value: 58759
|
|
1397
|
+
summary: Anděl
|
|
1398
|
+
cisId2:
|
|
1399
|
+
value: 13035
|
|
1400
|
+
summary: Jesenice
|
|
1401
|
+
cisId3:
|
|
1402
|
+
value: 5454956
|
|
1403
|
+
summary: Praha-Uhříněves
|
|
1404
|
+
schema:
|
|
1405
|
+
type: number
|
|
1406
|
+
- name: aswId
|
|
1407
|
+
in: query
|
|
1408
|
+
description: |
|
|
1409
|
+
ASW identifier of the stop. The format is `nodeId/stopId` where stopId is not mandatory.
|
|
1410
|
+
You can use `_` instead of `/` or encode the slash sign with `%2F`,
|
|
1411
|
+
Includes departures from the given stop, plus from all stops at the given node (1330_1 -> 1330 -> 1330_1, 1330_2, ...),
|
|
1412
|
+
plus from all stops sharing the same name. Departures from associated metro and train stations are also included (Na Knížecí -> Anděl).
|
|
1413
|
+
Required if `cisId` is not provided. Only one of `cisId` or `aswId` can be used.
|
|
1414
|
+
required: false
|
|
1415
|
+
examples:
|
|
1416
|
+
aswId1:
|
|
1417
|
+
value: "1040_1"
|
|
1418
|
+
summary: "Anděl A (tram stop)"
|
|
1419
|
+
aswId2:
|
|
1420
|
+
value: "1040_14"
|
|
1421
|
+
summary: "Anděl G (bus stop)"
|
|
1422
|
+
aswId3:
|
|
1423
|
+
value: "1330_1"
|
|
1424
|
+
summary: "Jesenice A (bus stop - regional)"
|
|
1425
|
+
aswId4:
|
|
1426
|
+
value: "461_301"
|
|
1427
|
+
summary: "Praha-Uhříněves (train station)"
|
|
1428
|
+
schema:
|
|
1429
|
+
type: string
|
|
1430
|
+
maxLength: 20
|
|
1431
|
+
- name: tripNumber
|
|
1432
|
+
in: query
|
|
1433
|
+
description: |
|
|
1434
|
+
Trip number of the vehicle in which the transfer is planned.
|
|
1435
|
+
Use to filter out transfers for a specific trip.
|
|
1436
|
+
Represents the numeric part of the GTFS `trip_short_name` (`Os 2547` -> `2547`).
|
|
1437
|
+
Generally, `trip_short_name` is available only for train services.
|
|
1438
|
+
Required if `vehicleRegistrationNumber` is not provided. Only one of `tripNumber` or `vehicleRegistrationNumber` can be used.
|
|
1439
|
+
required: false
|
|
1440
|
+
examples:
|
|
1441
|
+
tripNumber1:
|
|
1442
|
+
value: 2547
|
|
1443
|
+
summary: Os 2547
|
|
1444
|
+
schema:
|
|
1445
|
+
type: number
|
|
1446
|
+
- name: vehicleRegistrationNumber
|
|
1447
|
+
in: query
|
|
1448
|
+
description: |
|
|
1449
|
+
Registration number of the vehicle in which the transfer is planned.
|
|
1450
|
+
Use to filter out transfers for a specific vehicle.
|
|
1451
|
+
Required if `tripNumber` is not provided. Only one of `tripNumber` or `vehicleRegistrationNumber` can be used.
|
|
1452
|
+
required: false
|
|
1453
|
+
examples:
|
|
1454
|
+
vehicleRegistrationNumber1:
|
|
1455
|
+
value: "1001"
|
|
1456
|
+
summary: "Vehicle registration number"
|
|
1457
|
+
schema:
|
|
1458
|
+
type: string
|
|
1459
|
+
maxLength: 20
|
|
1460
|
+
- name: routeType
|
|
1461
|
+
in: query
|
|
1462
|
+
description: |
|
|
1463
|
+
Transport type of the route in which the transfer is planned. This parameter is required to distinguish between different vehicle types, as trams and buses can share the same registration number. The value is represented by the following enum from GTFS:
|
|
1464
|
+
- 0: Tram
|
|
1465
|
+
- 1: Subway
|
|
1466
|
+
- 2: Train
|
|
1467
|
+
- 3: Bus
|
|
1468
|
+
- 4: Ferry
|
|
1469
|
+
- 7: Funicular
|
|
1470
|
+
- 11: Trolleybus
|
|
1471
|
+
For example, if you want to get a tram with registration number "1001", use routeType=0. For a bus with the same registration number, use routeType=3.
|
|
1472
|
+
required: true
|
|
1473
|
+
examples:
|
|
1474
|
+
routeType1:
|
|
1475
|
+
value: 2
|
|
1476
|
+
summary: "Train"
|
|
1477
|
+
routeType2:
|
|
1478
|
+
value: 3
|
|
1479
|
+
summary: "Bus"
|
|
1480
|
+
schema:
|
|
1481
|
+
type: number
|
|
1482
|
+
enum:
|
|
1483
|
+
- 0
|
|
1484
|
+
- 1
|
|
1485
|
+
- 2
|
|
1486
|
+
- 3
|
|
1487
|
+
- 4
|
|
1488
|
+
- 7
|
|
1489
|
+
- 11
|
|
1490
|
+
- name: timeFrom
|
|
1491
|
+
in: query
|
|
1492
|
+
description: |
|
|
1493
|
+
Set initial timestamp for time interval given by `minutesBefore` (hardcoded to 0) and `minutesAfter` (hardcoded to 60). Use to simulate query time different from now. Use ISO 8601 time format and URL encoded symbols - `%3A` for `:`, `%2B` for `.`, `%2F` for `+`. Time zone is set to `Europe/Prague`. Applicable range is -6 hours +2 days from now.
|
|
1494
|
+
required: false
|
|
1495
|
+
schema:
|
|
1496
|
+
type: string
|
|
1497
|
+
example: "2024-11-04T16:51:00"
|
|
1498
|
+
- name: limit
|
|
1499
|
+
in: query
|
|
1500
|
+
description: |
|
|
1501
|
+
Limit the number of rows of departures returned. The total number of departures is a union across individual types of departures. The default value is 8.
|
|
1502
|
+
required: false
|
|
1503
|
+
schema:
|
|
1504
|
+
type: number
|
|
1505
|
+
default: 8
|
|
1506
|
+
responses:
|
|
1507
|
+
"200":
|
|
1508
|
+
description: List of possible transfers at the provided stop/node (identified by cisId or aswId)
|
|
1509
|
+
headers:
|
|
1510
|
+
Cache-Control:
|
|
1511
|
+
description: Cache control directive for caching proxies
|
|
1512
|
+
schema:
|
|
1513
|
+
type: string
|
|
1514
|
+
example: public, s-maxage=5, stale-while-revalidate=5
|
|
1515
|
+
content:
|
|
1516
|
+
application/json:
|
|
1517
|
+
schema:
|
|
1518
|
+
type: object
|
|
1519
|
+
required:
|
|
1520
|
+
- platform_code
|
|
1521
|
+
- stop_name
|
|
1522
|
+
- departures
|
|
1523
|
+
- infotexts
|
|
1524
|
+
properties:
|
|
1525
|
+
platform_code:
|
|
1526
|
+
type: string
|
|
1527
|
+
example: "2/3"
|
|
1528
|
+
nullable: true
|
|
1529
|
+
stop_name:
|
|
1530
|
+
type: string
|
|
1531
|
+
example: "Anděl"
|
|
1532
|
+
nullable: true
|
|
1533
|
+
icons:
|
|
1534
|
+
type: array
|
|
1535
|
+
items:
|
|
1536
|
+
type: string
|
|
1537
|
+
nullable: true
|
|
1538
|
+
departures:
|
|
1539
|
+
type: array
|
|
1540
|
+
description: |
|
|
1541
|
+
List of departures from the stop.
|
|
1542
|
+
The list is sorted by:
|
|
1543
|
+
- route type - subway and then other
|
|
1544
|
+
- subway is sorted alphabetically, then by departure time, then by direction id
|
|
1545
|
+
- departure time
|
|
1546
|
+
items:
|
|
1547
|
+
type: object
|
|
1548
|
+
required:
|
|
1549
|
+
- departure_timestamp
|
|
1550
|
+
- route
|
|
1551
|
+
- trip
|
|
1552
|
+
properties:
|
|
1553
|
+
departure_timestamp:
|
|
1554
|
+
type: object
|
|
1555
|
+
required:
|
|
1556
|
+
- minutes
|
|
1557
|
+
properties:
|
|
1558
|
+
minutes:
|
|
1559
|
+
type: array
|
|
1560
|
+
items:
|
|
1561
|
+
type: string
|
|
1562
|
+
nullable: true
|
|
1563
|
+
example: ["<1", "8"]
|
|
1564
|
+
route:
|
|
1565
|
+
type: object
|
|
1566
|
+
required:
|
|
1567
|
+
- short_name
|
|
1568
|
+
- type
|
|
1569
|
+
properties:
|
|
1570
|
+
short_name:
|
|
1571
|
+
type: string
|
|
1572
|
+
example: "B"
|
|
1573
|
+
nullable: true
|
|
1574
|
+
type:
|
|
1575
|
+
type: number
|
|
1576
|
+
example: 1
|
|
1577
|
+
nullable: true
|
|
1578
|
+
stop:
|
|
1579
|
+
type: object
|
|
1580
|
+
required:
|
|
1581
|
+
- platform_code
|
|
1582
|
+
properties:
|
|
1583
|
+
platform_code:
|
|
1584
|
+
type: string
|
|
1585
|
+
example: "2/3"
|
|
1586
|
+
nullable: true
|
|
1587
|
+
trip:
|
|
1588
|
+
type: object
|
|
1589
|
+
required:
|
|
1590
|
+
- headsign
|
|
1591
|
+
- id
|
|
1592
|
+
- is_wheelchair_accessible
|
|
1593
|
+
properties:
|
|
1594
|
+
headsign:
|
|
1595
|
+
type: string
|
|
1596
|
+
example: "Zličín"
|
|
1597
|
+
nullable: false
|
|
1598
|
+
description: "If more then one trips are available, the first one is taken. Trips are grouped by direction_id."
|
|
1599
|
+
id:
|
|
1600
|
+
type: string
|
|
1601
|
+
example: "1309_2547_231210"
|
|
1602
|
+
nullable: false
|
|
1603
|
+
description: "If more then one trips are available, the first one is taken. Trips are grouped by direction_id."
|
|
1604
|
+
is_wheelchair_accessible:
|
|
1605
|
+
type: boolean
|
|
1606
|
+
description: True if the vehicle being used on this trip is wheelchair accessible. Metro trips are deemed accessible if the station is accessible.
|
|
1607
|
+
example: false
|
|
1608
|
+
icons:
|
|
1609
|
+
type: array
|
|
1610
|
+
items:
|
|
1611
|
+
type: string
|
|
1612
|
+
nullable: true
|
|
1613
|
+
substitution_text:
|
|
1614
|
+
type: object
|
|
1615
|
+
required:
|
|
1616
|
+
- cs
|
|
1617
|
+
properties:
|
|
1618
|
+
cs:
|
|
1619
|
+
type: string
|
|
1620
|
+
example: "Provoz metra přerušen."
|
|
1621
|
+
nullable: false
|
|
1622
|
+
en:
|
|
1623
|
+
type: string
|
|
1624
|
+
example: "Metro service interrupted."
|
|
1625
|
+
nullable: true
|
|
1626
|
+
infotexts:
|
|
1627
|
+
type: array
|
|
1628
|
+
items:
|
|
1629
|
+
type: object
|
|
1630
|
+
required:
|
|
1631
|
+
- text
|
|
1632
|
+
- display_type
|
|
1633
|
+
properties:
|
|
1634
|
+
text:
|
|
1635
|
+
type: object
|
|
1636
|
+
required:
|
|
1637
|
+
- cs
|
|
1638
|
+
properties:
|
|
1639
|
+
cs:
|
|
1640
|
+
type: string
|
|
1641
|
+
example: "Nehoda na trase, odklon linek mimo tuto stanici."
|
|
1642
|
+
nullable: false
|
|
1643
|
+
en:
|
|
1644
|
+
type: string
|
|
1645
|
+
example: "Trips are cancelled due to accident on route."
|
|
1646
|
+
nullable: true
|
|
1647
|
+
display_type:
|
|
1648
|
+
type: string
|
|
1649
|
+
example: "inline"
|
|
1650
|
+
enum:
|
|
1651
|
+
- "inline"
|
|
1652
|
+
- "general"
|
|
1653
|
+
nullable: false
|
|
1654
|
+
|
|
1655
|
+
"400":
|
|
1656
|
+
description: |
|
|
1657
|
+
Bad request - invalid query parameters, including:
|
|
1658
|
+
* `cisId` and `aswId` are missing or invalid
|
|
1659
|
+
* Both `cisId` and `aswId` are provided
|
|
1660
|
+
* `timeFrom` is invalid or out of range
|
|
1661
|
+
content:
|
|
1662
|
+
application/json:
|
|
1663
|
+
schema:
|
|
1664
|
+
type: object
|
|
1665
|
+
properties:
|
|
1666
|
+
error_message:
|
|
1667
|
+
type: string
|
|
1668
|
+
example: "Bad request"
|
|
1669
|
+
nullable: false
|
|
1670
|
+
error_status:
|
|
1671
|
+
type: integer
|
|
1672
|
+
example: 400
|
|
1673
|
+
nullable: false
|
|
1674
|
+
error_info:
|
|
1675
|
+
type: string
|
|
1676
|
+
example: "{...}"
|
|
1677
|
+
nullable: true
|
|
1678
|
+
required:
|
|
1679
|
+
- error_message
|
|
1680
|
+
- error_status
|
|
1681
|
+
"401":
|
|
1682
|
+
$ref: "#/components/responses/UnauthorizedError"
|
|
1683
|
+
"404":
|
|
1684
|
+
description: Not found - no valid GTFS stop found for the given CIS ID or ASW ID
|
|
1685
|
+
content:
|
|
1686
|
+
application/json:
|
|
1687
|
+
schema:
|
|
1688
|
+
type: object
|
|
1689
|
+
required:
|
|
1690
|
+
- departures
|
|
1691
|
+
- infotexts
|
|
1692
|
+
properties:
|
|
1693
|
+
departures:
|
|
1694
|
+
type: array
|
|
1695
|
+
example: []
|
|
1696
|
+
items:
|
|
1697
|
+
type: object
|
|
1698
|
+
infotexts:
|
|
1699
|
+
type: array
|
|
1700
|
+
example: []
|
|
1701
|
+
items:
|
|
1702
|
+
type: object
|
|
1703
|
+
|
|
1378
1704
|
/v2/public/gtfs/trips/{gtfsTripId}:
|
|
1379
1705
|
get:
|
|
1380
1706
|
tags:
|
|
@@ -1787,10 +2113,6 @@ paths:
|
|
|
1787
2113
|
$ref: "#/components/responses/BadRequestError"
|
|
1788
2114
|
401:
|
|
1789
2115
|
$ref: "#/components/responses/UnauthorizedError"
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
2116
|
|
|
1795
2117
|
|
|
1796
2118
|
components:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@golemio/pid",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.2-dev.1982076656",
|
|
4
4
|
"description": "Golemio PID Module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"@golemio/core": ">=1.16.0-rc.1551191551"
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
|
-
"@golemio/ovapi-gtfs-realtime-bindings": "1.2.
|
|
78
|
+
"@golemio/ovapi-gtfs-realtime-bindings": "1.2.4-dev.1288219308",
|
|
79
79
|
"@turf/turf": "^6.5.0",
|
|
80
80
|
"cheap-ruler": "^3.0.2",
|
|
81
81
|
"csv-parser": "^3.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VPSubscriber.js","sourceRoot":"","sources":["../../../../src/output-gateway/public/service/VPSubscriber.ts"],"names":[],"mappings":";;;AAAA,+GAAgI;AAGhI,MAAa,YAAa,SAAQ,iCAAe;IAC7C,YAAY,OAA2B,EAAU,UAAuC;QACpF,KAAK,CAAC,OAAO,CAAC,CAAC;QAD8B,eAAU,GAAV,UAAU,CAA6B;IAExF,CAAC;IAEM,KAAK,CAAC,UAAU;QACnB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;YACtF,IAAI,OAAO,KAAK,SAAS,EAAE;gBACvB,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;aAC9C;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAhBD,oCAgBC"}
|