@golemio/pid 3.15.3-dev.1840989210 → 3.15.3-dev.1841156396

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 (53) hide show
  1. package/db/example/22_jis_events.sql +56 -0
  2. package/db/migrations/postgresql/20250522144056-add-new-attributes-to-event.js +53 -0
  3. package/db/migrations/postgresql/sqls/20250522144056-add-new-attributes-to-event-down.sql +5 -0
  4. package/db/migrations/postgresql/sqls/20250522144056-add-new-attributes-to-event-up.sql +4 -0
  5. package/dist/integration-engine/jis/transformations/JISEventsTransformation.js +3 -0
  6. package/dist/integration-engine/jis/transformations/JISEventsTransformation.js.map +1 -1
  7. package/dist/output-gateway/index.js +4 -0
  8. package/dist/output-gateway/index.js.map +1 -1
  9. package/dist/output-gateway/jis/controllers/v1/V1EventsController.d.ts +12 -0
  10. package/dist/output-gateway/jis/controllers/v1/V1EventsController.js +71 -0
  11. package/dist/output-gateway/jis/controllers/v1/V1EventsController.js.map +1 -0
  12. package/dist/output-gateway/jis/data-access/JISEventsRepository.d.ts +18 -0
  13. package/dist/output-gateway/jis/data-access/JISEventsRepository.js +76 -0
  14. package/dist/output-gateway/jis/data-access/JISEventsRepository.js.map +1 -0
  15. package/dist/output-gateway/jis/data-access/JISEventsRopidGTFSRoutesRepository.d.ts +12 -0
  16. package/dist/output-gateway/jis/data-access/JISEventsRopidGTFSRoutesRepository.js +40 -0
  17. package/dist/output-gateway/jis/data-access/JISEventsRopidGTFSRoutesRepository.js.map +1 -0
  18. package/dist/output-gateway/jis/data-access/RopidGTFSRoutesRepository.d.ts +12 -0
  19. package/dist/output-gateway/jis/data-access/RopidGTFSRoutesRepository.js +39 -0
  20. package/dist/output-gateway/jis/data-access/RopidGTFSRoutesRepository.js.map +1 -0
  21. package/dist/output-gateway/jis/domain/IJISEventsInterfaces.d.ts +36 -0
  22. package/dist/output-gateway/jis/domain/IJISEventsInterfaces.js +3 -0
  23. package/dist/output-gateway/jis/domain/IJISEventsInterfaces.js.map +1 -0
  24. package/dist/output-gateway/jis/helpers/TranslationHelper.d.ts +4 -0
  25. package/dist/output-gateway/jis/helpers/TranslationHelper.js +48 -0
  26. package/dist/output-gateway/jis/helpers/TranslationHelper.js.map +1 -0
  27. package/dist/output-gateway/jis/ioc/Di.d.ts +3 -0
  28. package/dist/output-gateway/jis/ioc/Di.js +27 -0
  29. package/dist/output-gateway/jis/ioc/Di.js.map +1 -0
  30. package/dist/output-gateway/jis/ioc/OgJisToken.d.ts +8 -0
  31. package/dist/output-gateway/jis/ioc/OgJisToken.js +20 -0
  32. package/dist/output-gateway/jis/ioc/OgJisToken.js.map +1 -0
  33. package/dist/output-gateway/jis/routers/v1/V1JISRouter.d.ts +12 -0
  34. package/dist/output-gateway/jis/routers/v1/V1JISRouter.js +33 -0
  35. package/dist/output-gateway/jis/routers/v1/V1JISRouter.js.map +1 -0
  36. package/dist/output-gateway/jis/routers/v1/index.d.ts +1 -0
  37. package/dist/output-gateway/jis/routers/v1/index.js +6 -0
  38. package/dist/output-gateway/jis/routers/v1/index.js.map +1 -0
  39. package/dist/output-gateway/jis/transofrmations/JISEventsCustomFormatTransformation.d.ts +10 -0
  40. package/dist/output-gateway/jis/transofrmations/JISEventsCustomFormatTransformation.js +72 -0
  41. package/dist/output-gateway/jis/transofrmations/JISEventsCustomFormatTransformation.js.map +1 -0
  42. package/dist/output-gateway/pid/ioc/Di.js +0 -1
  43. package/dist/output-gateway/pid/ioc/Di.js.map +1 -1
  44. package/dist/schema-definitions/jis/datasources/JISEventsJsonSchema.js +17 -0
  45. package/dist/schema-definitions/jis/datasources/JISEventsJsonSchema.js.map +1 -1
  46. package/dist/schema-definitions/jis/datasources/interfaces/IJISEvent.d.ts +5 -0
  47. package/dist/schema-definitions/jis/models/JISEventsModel.d.ts +6 -3
  48. package/dist/schema-definitions/jis/models/JISEventsModel.js +20 -0
  49. package/dist/schema-definitions/jis/models/JISEventsModel.js.map +1 -1
  50. package/dist/schema-definitions/jis/models/interfaces/IJISEvent.d.ts +3 -0
  51. package/docs/openapi-input.yaml +35 -1
  52. package/docs/openapi-output.yaml +267 -0
  53. package/package.json +1 -1
@@ -9,6 +9,8 @@ INSERT INTO
9
9
  severity_level,
10
10
  active_period_start,
11
11
  active_period_end,
12
+ display_period_start,
13
+ display_period_end,
12
14
  effect,
13
15
  effect_detail,
14
16
  description_text,
@@ -29,6 +31,8 @@ VALUES
29
31
  'WARNING',
30
32
  '2025-04-15 05:25:00.000',
31
33
  '2025-04-15 06:15:00.000',
34
+ '2025-04-15 05:25:00.000',
35
+ '2025-04-15 06:15:00.000',
32
36
  'SIGNIFICANT_DELAYS',
33
37
  '{"cs": "nevyplněno"}',
34
38
  '{"cs": "Následující spoj linky 346 bude opožděn:\\n\\nČerný Most (5:25) - Brandýs n.L.-St.Bol.,Sídl.u nádr. (5:45) - Černý Most (6:09)"}',
@@ -48,6 +52,8 @@ VALUES
48
52
  'WARNING',
49
53
  '2025-02-01 00:00:00.000',
50
54
  '2025-10-10 23:59:00.000',
55
+ '2025-02-01 00:00:00.000',
56
+ '2025-10-10 23:59:00.000',
51
57
  'NO_SERVICE',
52
58
  '{"cs": "nevyplněno"}',
53
59
  '{"cs": "https://vymi.golemio.cz/infotexts/c84045bb-af0f-4411-96c4-d0547e31a163\\nhttps://vymi.golemio.cz/infotexts/5fb88d47-02b0-48c3-bcb9-f2ae2be5c1fd\\nhttps://vymi.golemio.cz/infotexts/c4913e1a-22fc-4220-855f-122158a8afbf\\nhttps://vymi.golemio.cz/infotexts/902cdb77-b0a0-4377-9fcd-7c4bf224b746\\nhttps://vymi.golemio.cz/infotexts/81518692-0b41-440d-97dc-76e5cba67067"}',
@@ -67,6 +73,8 @@ VALUES
67
73
  'WARNING',
68
74
  '2025-04-05 04:30:00.000',
69
75
  '2025-04-30 23:59:00.000',
76
+ '2025-04-05 04:30:00.000',
77
+ '2025-04-30 23:59:00.000',
70
78
  'DETOUR',
71
79
  '{"cs": "nevyplněno"}',
72
80
  '{"cs": "Z důvodu rekonstrukce tramvajové trati dochází od soboty 5. dubna 2025 (přibližně od 4.30 hodin) do středy 30. dubna 2025 (přibližně do 24.00 hodin) k dočasnému přerušení provozu tramvají v oblasti zastávek Vozovna Střešovice."}',
@@ -86,6 +94,8 @@ VALUES
86
94
  'WARNING',
87
95
  '2025-03-15 20:00:00.000',
88
96
  '2025-03-16 08:00:00.000',
97
+ '2025-03-15 20:00:00.000',
98
+ '2025-03-16 08:00:00.000',
89
99
  'DETOUR',
90
100
  '{"cs": "nevyplněno"}',
91
101
  '{"cs": "# Popis události\\n\\nZ důvodu uzavření ulice Vyskočilova pro potřeby filmování dochází od soboty 15. března 2025 (od 20.00 hodin) do neděle 16. března 2025 (do 8.00 hodin) k dočasné změně trasy a zastávek pro linky číslo 118, 124, 170 a 193.\\n\\n# Opatření\\n## Změna trasy\\n* Linky číslo 118, 124 a 170 jsou ve směru Budějovická vedeny přes zastávky Vyskočilova (v Michelské ulici) a Kačerov.\\n* Linka číslo 193 je ve směru Budějovická vedena přes zastávky U Labutě a Budějovická.\\n\\n## Změna zastávek\\n* Ve směru Budějovická se přemisťuje zastávka Vyskočilova, a to z ulice Vyskočilova do ulice Michelské, přibližně 100 metrů za křižovatku ulic Michelská × Vyskočilova.\\n* Ve směru Budějovická se ruší zastávka Brumlovka.\\n* Ve směru Budějovická se pro linky číslo 118, 124 a 170 zřizuje zastávka Kačerov."}',
@@ -105,6 +115,8 @@ VALUES
105
115
  'WARNING',
106
116
  '2025-03-14 00:40:00.000',
107
117
  '2025-03-14 04:25:00.000',
118
+ '2025-03-14 00:40:00.000',
119
+ '2025-03-14 04:25:00.000',
108
120
  'DETOUR',
109
121
  '{"cs": "nevyplněno"}',
110
122
  '{"cs": "# Popis události\\nZ důvodu údržby tramvajové trati dochází v pátek 14. března 2025 od 0.40 hodin do 4.25 hodin k obousměrnému přerušení provozu tramvají v úseku Palmovka – Ke Stírce.\\n\\n#Opatření\\n##Změny tras tramvajových linek\\nLinka číslo 95 je ve směru z centra zkrácena do zastávky Palmovka (výstupní zastávka v Sokolovské ulici, nástupní v ulici Na Žertvách).\\n## Náhradní autobusová doprava\\nV trase _Palmovka – Bulovka – Ke Stírce – Kobylisy – Vozovna Kobylisy_ je zavedena náhradní autobusová doprava číslo X95."}',
@@ -124,6 +136,8 @@ VALUES
124
136
  'INFO',
125
137
  '2025-04-01 00:00:00.000',
126
138
  '2025-04-01 00:00:00.000',
139
+ '2025-04-01 00:00:00.000',
140
+ '2025-04-01 00:00:00.000',
127
141
  'OTHER_EFFECT',
128
142
  '{"cs": "nevyplněno"}',
129
143
  '{"cs": "# Opatření\\n**687**\\n- Linka je nově všemi spoji mezi Zbraslavicemi a Radvančicemi vedena přes Štipoklasy\\n\\n**801**\\n- Změna dopravce na lince (nově provoz zajišťuje společnost Lutan)\\n- Převod spojů z linky 803\\n- Drobná úprava trasy vybraných spojů v koncových úsecích\\n\\n**803**\\n- Převod spojů na linku 801 a zrušení linky"}',
@@ -143,6 +157,8 @@ VALUES
143
157
  'WARNING',
144
158
  '2025-03-30 07:31:00.000',
145
159
  '2025-03-30 17:31:00.000',
160
+ '2025-03-30 07:31:00.000',
161
+ '2025-03-30 17:31:00.000',
146
162
  'REDUCED_SERVICE',
147
163
  '{"cs": "nevyplněno"}',
148
164
  '{"cs": "# Popis události\\nZ důvodu údržby tramvajové trati dochází v neděli 30. března 2025 od 7.30 hodin do 17.30 hodin ke krátkodobému přerušení provozu tramvají v úseku Malovanka – Bílá Hora.\\n\\n# Opatření\\n## Změny tras tramvajových linek\\nLinky číslo 22 a 25 jsou ve směru z centra zkráceny do zastávky Malovanka.\\n\\n## Náhradní doprava\\nZavedena je náhradní autobusová doprava X22 v trase Malovanka – U Kaštanu – Vypich – Bílá Hora."}',
@@ -162,6 +178,8 @@ VALUES
162
178
  'WARNING',
163
179
  '2025-03-29 04:16:00.000',
164
180
  '2025-03-31 00:00:00.000',
181
+ '2025-03-29 04:16:00.000',
182
+ '2025-03-31 00:00:00.000',
165
183
  'DETOUR',
166
184
  '{"cs": "nevyplněno"}',
167
185
  '{"cs": "Z důvodu stavebních prací na Negrelliho viaduktu dochází od soboty 29. března 2025 (od 4.15 hodin) do neděle 30. března 2025 (přibližně do 24.00 hodin) k obousměrnému přerušení provozu tramvají v úseku Vltavská – Dělnická – Nádraží Holešovice – Ke Stírce."}',
@@ -181,6 +199,8 @@ VALUES
181
199
  'WARNING',
182
200
  '2025-04-06 04:16:00.000',
183
201
  '2025-04-06 23:59:00.000',
202
+ '2025-04-06 04:16:00.000',
203
+ '2025-04-06 23:59:00.000',
184
204
  'DETOUR',
185
205
  '{"cs": "nevyplněno"}',
186
206
  '{"cs": "Z důvodu stavebních prací na Negrelliho viaduktu dochází v neděli 6. dubna 2025 od 4.15 hodin přibližně do 24.00 hodin k obousměrnému přerušení provozu tramvají v úseku Vltavská – Dělnická – Nádraží Holešovice – Ke Stírce."}',
@@ -200,6 +220,8 @@ VALUES
200
220
  'WARNING',
201
221
  '2025-03-22 07:30:00.000',
202
222
  '2025-03-22 18:00:00.000',
223
+ '2025-03-22 07:30:00.000',
224
+ '2025-03-22 18:00:00.000',
203
225
  'REDUCED_SERVICE',
204
226
  '{"cs": "nevyplněno"}',
205
227
  '{"cs": "Z důvodu údržby tramvajové trati dochází v sobotu 22. března 2025 od 7.30 hodin do 18.00 hodin ke krátkodobému přerušení provozu tramvají v úseku Červený Vrch – Dědina.\\n# Opatření\\n##Změny tras tramvajových linek\\nLinky číslo 20 a 26 jsou ve směru z centra zkráceny do zastávky Červený Vrch.\\n##Náhradní doprava\\nZavedena je náhradní autobusová doprava X26 v trase Dědina – Divoká Šárka – Vozovna Vokovice – Nádraží Veleslavín – Červený Vrch – Bořislavka – Na Pískách (pouze výstupní)."}',
@@ -219,6 +241,8 @@ VALUES
219
241
  'WARNING',
220
242
  '2025-03-22 18:01:00.000',
221
243
  '2025-03-24 04:31:00.000',
244
+ '2025-03-22 18:01:00.000',
245
+ '2025-03-24 04:31:00.000',
222
246
  'REDUCED_SERVICE',
223
247
  '{"cs": "nevyplněno"}',
224
248
  '{"cs": "Z důvodu údržby tramvajové trati dochází od soboty 22. března 2025 (od 18.00 hodin) do pondělí 24. března 2025 (do 4.20 hodin) ke krátkodobému přerušení provozu tramvají v úseku Divoká Šárka – Dědina."}',
@@ -238,6 +262,8 @@ VALUES
238
262
  'WARNING',
239
263
  '2025-03-27 00:40:00.000',
240
264
  '2025-03-27 04:40:00.000',
265
+ '2025-03-27 00:40:00.000',
266
+ '2025-03-27 04:40:00.000',
241
267
  'REDUCED_SERVICE',
242
268
  '{"cs": "nevyplněno"}',
243
269
  '{"cs": "Z důvodu údržby tramvajové trati dochází ve čtvrtek 27. března 2025 od 0.40 hodin do 4.40 hodin k obousměrnému přerušení provozu tramvají v úseku Strossmayerovo náměstí – Hradčanská."}',
@@ -257,6 +283,8 @@ VALUES
257
283
  'WARNING',
258
284
  '2025-03-28 00:36:00.000',
259
285
  '2025-03-28 04:31:00.000',
286
+ '2025-03-28 00:36:00.000',
287
+ '2025-03-28 04:31:00.000',
260
288
  'REDUCED_SERVICE',
261
289
  '{"cs": "nevyplněno"}',
262
290
  '{"cs": "Z důvodu údržby tramvajové trati dochází v pátek 28. března 2025 od 0.35 hodin do 4.30 hodin ke krátkodobému přerušení provozu tramvají v úseku Balabenka – Nádraží Libeň – Starý Hloubětín."}',
@@ -276,6 +304,8 @@ VALUES
276
304
  'WARNING',
277
305
  '2025-04-08 20:01:00.000',
278
306
  '2025-04-09 04:51:00.000',
307
+ '2025-04-08 20:01:00.000',
308
+ '2025-04-09 04:51:00.000',
279
309
  'DETOUR',
280
310
  '{"cs": "nevyplněno"}',
281
311
  '{"cs": "Z důvodu stavebních prací na Negrelliho viaduktu dochází od úterý 8. dubna 2025 od 20.00 hodin do středy 9. dubna 2025 do 4.50 hodin k obousměrnému přerušení provozu tramvají v úseku Vltavská – Dělnická – Nádraží Holešovice – Ke Stírce."}',
@@ -295,6 +325,8 @@ VALUES
295
325
  'WARNING',
296
326
  '2025-04-12 04:15:00.000',
297
327
  '2025-04-13 23:59:00.000',
328
+ '2025-04-12 04:15:00.000',
329
+ '2025-04-13 23:59:00.000',
298
330
  'DETOUR',
299
331
  '{"cs": "nevyplněno"}',
300
332
  '{"cs": "Z důvodu stavebních prací na Negrelliho viaduktu dochází od soboty 12. dubna 2025 (od 4.15 hodin) do neděle 13. dubna 2025 (přibližně do 24.00 hodin) k obousměrnému přerušení provozu tramvají v úseku Vltavská – Dělnická – Nádraží. Holešovice – Ke Stírce."}',
@@ -314,6 +346,8 @@ VALUES
314
346
  'WARNING',
315
347
  '2025-04-29 00:45:00.000',
316
348
  '2025-04-29 04:35:00.000',
349
+ '2025-04-29 00:45:00.000',
350
+ '2025-04-29 04:35:00.000',
317
351
  'DETOUR',
318
352
  '{"cs": "nevyplněno"}',
319
353
  '{"cs": "Z důvodu údržby tramvajové trati dochází v úterý 29. dubna 2025 od 0.45 hodin do 4.35 hodin ke krátkodobému přerušení provozu tramvají v úsecích Náměstí Míru – Orionka – Flora – Želivského – Vozovna Strašnice, Olšanské náměstí – Flora a Želivského – Nákladové nádraží Žižkov."}',
@@ -333,6 +367,8 @@ VALUES
333
367
  'WARNING',
334
368
  '2025-04-11 00:36:00.000',
335
369
  '2025-04-11 04:35:00.000',
370
+ '2025-04-11 00:36:00.000',
371
+ '2025-04-11 04:35:00.000',
336
372
  'DETOUR',
337
373
  '{"cs": "nevyplněno"}',
338
374
  '{"cs": "Z důvodu údržby tramvajové trati dochází v pátek 11. dubna 2025 od 0.35 hodin do 4.35 hodin ke krátkodobému přerušení provozu tramvají v úseku Florenc – Palmovka."}',
@@ -352,6 +388,8 @@ VALUES
352
388
  'WARNING',
353
389
  '2025-04-04 22:00:00.000',
354
390
  '2025-04-05 15:30:00.000',
391
+ '2025-04-04 22:00:00.000',
392
+ '2025-04-05 15:30:00.000',
355
393
  'DETOUR',
356
394
  '{"cs": "nevyplněno"}',
357
395
  '{"cs": "Dopravní omezení před zahájením akce – od pátku 4. dubna 2025 (od 22.00 hodin) do soboty 5. dubna 2025 (do 9.45 hodin)\\nZměny tras tramvajových linek\\n\\nDenní provoz\\n\\n Linka číslo 1 provozována pouze v uvedeném směru: SÍDLIŠTĚ PETŘINY … Strossmayerovo náměstí – Dlouhá třída – Náměstí Republiky – Bílá labuť – Těšnov – Vltavská (na předmostí Hlávkova mostu) … SÍDLIŠTĚ PETŘINY.\\n Linka číslo 3: NÁDRAŽÍ BRANÍK … Kobylisy – VOZOVNA KOBYLISY\\n Linka číslo 14: SPOŘILOV … Vltavská (na předmostí Hláv"}',
@@ -371,6 +409,8 @@ VALUES
371
409
  'WARNING',
372
410
  '2025-04-15 09:22:00.000',
373
411
  '2025-04-15 09:55:00.000',
412
+ '2025-04-15 09:22:00.000',
413
+ '2025-04-15 09:55:00.000',
374
414
  'UNKNOWN_EFFECT',
375
415
  '{"cs": "nevyplněno"}',
376
416
  '{"cs": "345"}',
@@ -390,6 +430,8 @@ VALUES
390
430
  'INFO',
391
431
  '2025-01-01 00:00:00.000',
392
432
  '2025-01-01 00:00:00.000',
433
+ '2025-01-01 00:00:00.000',
434
+ '2025-01-01 00:00:00.000',
393
435
  'NO_EFFECT',
394
436
  '{"cs": "nevyplněno"}',
395
437
  '{"cs": "Tato událost je určená pro vytváření testovacích zpráv"}',
@@ -409,6 +451,8 @@ VALUES
409
451
  'WARNING',
410
452
  '2025-04-07 15:19:00.000',
411
453
  '2025-04-07 16:29:00.000',
454
+ '2025-04-07 15:19:00.000',
455
+ '2025-04-07 16:29:00.000',
412
456
  'REDUCED_SERVICE',
413
457
  '{"cs": "nevyplněno"}',
414
458
  '{"cs": "Stržené trolejové vedení"}',
@@ -428,6 +472,8 @@ VALUES
428
472
  'SEVERE',
429
473
  '2025-04-07 16:58:55.000',
430
474
  '2025-04-07 17:03:00.000',
475
+ '2025-04-07 16:58:55.000',
476
+ '2025-04-07 17:03:00.000',
431
477
  'REDUCED_SERVICE',
432
478
  '{"cs": "nevyplněno"}',
433
479
  '{"cs": "není panel :-("}',
@@ -447,6 +493,8 @@ VALUES
447
493
  'WARNING',
448
494
  '2025-04-18 04:30:00.000',
449
495
  '2025-04-21 23:59:00.000',
496
+ '2025-04-18 04:30:00.000',
497
+ '2025-04-21 23:59:00.000',
450
498
  'DETOUR',
451
499
  '{"cs": "nevyplněno"}',
452
500
  '{"cs": "Z důvodu opravy tramvajové trati je od pátku 18. dubna 2025 (přibližně od 4.30 hodin) do pondělí 21. dubna 2025 (přibližně do 24.00 hod.) obousměrně přerušen provoz tramvají v úseku Prašný most – Vozovna Střešovice."}',
@@ -466,6 +514,8 @@ VALUES
466
514
  'SEVERE',
467
515
  '2025-04-08 12:30:00.000',
468
516
  '2025-04-08 15:00:00.000',
517
+ '2025-04-08 12:30:00.000',
518
+ '2025-04-08 15:00:00.000',
469
519
  'REDUCED_SERVICE',
470
520
  '{"cs": "nevyplněno"}',
471
521
  '{"cs": "Provoz vlaků přerušen v úseku Praha-Zahradní Město - Praha-Uhříněves. Linka S49 je odřeknuta v úseku Praha-Libeň - Praha-Hostivař.\\nJízdní doklady ČD jsou uznávány v MHD následovně:\\n\\nMetro C: Hlavní nádraží – Háje\\nTram 22, 26: Nádraží Zahradní Město – Nádraží Hostivař\\nBus 125, 154, 183: Nádraží Hostivař – Háje\\nBus 126, 226, 227: Háje – Nádraží Uhříněves\\nBus 381, 382, 383, 387: Háje – Nové náměstí\\nBus 204: Sídliště Petrovice – Nádraží Horní Měcholupy\\nBus 240: Háje – Nádraží Horní Měcholupy\\n\\n\\nVlak R 715 \"Lužnice\" vyčká obnovení provozu ve stanici Praha-Zahradní Město a bude asi 90 -120 minut opožděn.\\nVlak R 720 \"Vltava\" nejede v úseku Praha-Uhříněves - Praha hl.n., cestující použijí prostředky MHD Praha.\\nCestující z vlaku R 722 \"Vltava\" budou za asistence hasičů evakuováni na zatávku MHD a dále použijí prostředky MHD Praha.\\nVlak R 717 \"Vltava\" nejede v úseku Praha hl.n. - Praha-Uhříněves, cestující použijí náhradou prostředky MHD Praha nebo následné vlaky po obnovení provozu.\\nVlak IC 535 \"Jižní expres\" nejede v úseku Praha hl.n. - Benešov u Prahy, cestující použijí následné vlaky.\\nVlak IC 536 \"Jižní expres\" nejede v úseku Benešov u Prahy - Praha hl.n., cestující použijí následné vlaky.\\nV úseku Benešov u Prahy - České Budějovice bude vlak IC 535 \"Jižní expres\" zastavovat ve všech stanicích jako vlak R 715."}',
@@ -485,6 +535,8 @@ VALUES
485
535
  'INFO',
486
536
  '2025-04-08 15:45:00.000',
487
537
  '2025-04-08 19:00:00.000',
538
+ '2025-04-08 15:45:00.000',
539
+ '2025-04-08 19:00:00.000',
488
540
  'SIGNIFICANT_DELAYS',
489
541
  '{"cs": "nevyplněno"}',
490
542
  '{"cs": "Silná IAD v ulici Jugoslávských partyzánů."}',
@@ -504,6 +556,8 @@ VALUES
504
556
  'WARNING',
505
557
  '2025-04-18 04:30:00.000',
506
558
  '2025-04-21 23:59:00.000',
559
+ '2025-04-18 04:30:00.000',
560
+ '2025-04-21 23:59:00.000',
507
561
  'MODIFIED_SERVICE',
508
562
  '{"cs": "nevyplněno"}',
509
563
  '{"cs": "Z důvodu výstavby přejezdu přes tramvajovou trať dochází od pátku 18. dubna 2025 (přibližně od 4.30 hodin) do pondělí 21. dubna 2025 (přibližně do 24.00 hodin) k dočasnému přerušení provozu tramvají v úseku Sídliště Barrandov – Slivenec."}',
@@ -523,6 +577,8 @@ VALUES
523
577
  'WARNING',
524
578
  '2025-04-29 23:03:00.000',
525
579
  '2025-04-30 04:21:00.000',
580
+ '2025-04-29 23:03:00.000',
581
+ '2025-04-30 04:21:00.000',
526
582
  'DETOUR',
527
583
  '{"cs": "nevyplněno"}',
528
584
  '{"cs": "Z důvodu údržby tramvajové trati dochází v noci z úterý 29. dubna 2025 (od 23.20 hodin) na středu 30. dubna 2025 (do 4.20 hodin) ke krátkodobému přerušení provozu tramvají v úseku Vysočanská – Starý Hloubětín."}',
@@ -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', '20250522144056-add-new-attributes-to-event-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', '20250522144056-add-new-attributes-to-event-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,5 @@
1
+ ALTER TABLE jis_events
2
+ DROP COLUMN display_period_start,
3
+ DROP COLUMN display_period_end,
4
+ DROP COLUMN description_html;
5
+
@@ -0,0 +1,4 @@
1
+ ALTER TABLE jis_events
2
+ ADD COLUMN display_period_start timestamptz,
3
+ ADD COLUMN display_period_end timestamptz,
4
+ ADD COLUMN description_html jsonb;
@@ -23,9 +23,12 @@ let JISEventsTransformation = exports.JISEventsTransformation = class JISEventsT
23
23
  severity_level: data.severity_level,
24
24
  active_period_start: new Date(data.active_period.start),
25
25
  active_period_end: data.active_period.end ? new Date(data.active_period.end) : null,
26
+ display_period_start: new Date(data.display_period.start),
27
+ display_period_end: data.display_period.end ? new Date(data.display_period.end) : null,
26
28
  effect: data.effect,
27
29
  effect_detail: data.effect_detail,
28
30
  description_text: data.description_text,
31
+ description_html: data.description_html,
29
32
  url: data.url,
30
33
  organization_name: data.organization_name,
31
34
  created_timestamp: new Date(data.created_timestamp),
@@ -1 +1 @@
1
- {"version":3,"file":"JISEventsTransformation.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/transformations/JISEventsTransformation.ts"],"names":[],"mappings":";;;;;;;;;AAKA,6GAA0G;AAC1G,iEAAgE;AASzD,IAAM,uBAAuB,qCAA7B,MAAM,uBAAwB,SAAQ,+CAAiD;IAAvF;;QACI,SAAI,GAAG,yBAAyB,CAAC;QAE9B,sBAAiB,GAAG,CAAC,IAAiB,EAAgB,EAAE;YAC9D,MAAM,KAAK,GAAG;gBACV,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,mBAAmB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBACvD,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;gBACnF,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,iBAAiB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;gBACnD,iBAAiB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;aAC5D,CAAC;YACF,MAAM,qBAAqB,GACvB,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC3C,QAAQ,EAAE,IAAI,CAAC,EAAE;gBACjB,QAAQ,EAAE,EAAE;aACf,CAAC,CAAC,IAAI,EAAE,CAAC;YACd,OAAO;gBACH,KAAK;gBACL,qBAAqB;aACxB,CAAC;QACN,CAAC,CAAC;IACN,CAAC;CAAA,CAAA;kCA/BY,uBAAuB;IADnC,IAAA,qBAAU,GAAE;GACA,uBAAuB,CA+BnC"}
1
+ {"version":3,"file":"JISEventsTransformation.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/transformations/JISEventsTransformation.ts"],"names":[],"mappings":";;;;;;;;;AAKA,6GAA0G;AAC1G,iEAAgE;AASzD,IAAM,uBAAuB,qCAA7B,MAAM,uBAAwB,SAAQ,+CAAiD;IAAvF;;QACI,SAAI,GAAG,yBAAyB,CAAC;QAE9B,sBAAiB,GAAG,CAAC,IAAiB,EAAgB,EAAE;YAC9D,MAAM,KAAK,GAAmB;gBAC1B,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,mBAAmB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBACvD,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;gBACnF,oBAAoB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBACzD,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;gBACtF,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,iBAAiB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;gBACnD,iBAAiB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;aAC5D,CAAC;YACF,MAAM,qBAAqB,GACvB,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC3C,QAAQ,EAAE,IAAI,CAAC,EAAE;gBACjB,QAAQ,EAAE,EAAE;aACf,CAAC,CAAC,IAAI,EAAE,CAAC;YACd,OAAO;gBACH,KAAK;gBACL,qBAAqB;aACxB,CAAC;QACN,CAAC,CAAC;IACN,CAAC;CAAA,CAAA;kCAlCY,uBAAuB;IADnC,IAAA,qBAAU,GAAE;GACA,uBAAuB,CAkCnC"}
@@ -28,6 +28,7 @@ const pid_1 = require("./pid");
28
28
  const public_1 = require("./public");
29
29
  const ropid_gtfs_1 = require("./ropid-gtfs");
30
30
  const vehicle_positions_1 = require("./vehicle-positions");
31
+ const v1_1 = require("./jis/routers/v1");
31
32
  exports.PID = __importStar(require("./pid"));
32
33
  exports.RopidGTFS = __importStar(require("./ropid-gtfs"));
33
34
  exports.VehiclePositions = __importStar(require("./vehicle-positions"));
@@ -46,5 +47,8 @@ exports.routers = [
46
47
  public_1.v2PublicGtfsRouter,
47
48
  public_1.v2PublicVPRouter,
48
49
  //#endregion
50
+ //#region Jis Endpoints
51
+ v1_1.v1JisRouter,
52
+ //#endregion
49
53
  ];
50
54
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/output-gateway/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAmD;AACnD,qCAA4F;AAC5F,6CAA8C;AAC9C,2DAAiE;AAEjE,6CAA6B;AAC7B,0DAA0C;AAC1C,wEAAwD;AAE3C,QAAA,OAAO,GAAG;IACnB,oBAAoB;IACpB,yBAAY;IACZ,YAAY;IAEZ,2BAA2B;IAC3B,4CAAwB;IAExB,8BAA8B;IAC9B,iBAAW;IACX,iBAAW;IACX,YAAY;IAEZ,0BAA0B;IAC1B,iCAAwB;IACxB,2BAAkB;IAClB,yBAAgB;IAChB,YAAY;CACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/output-gateway/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAmD;AACnD,qCAA4F;AAC5F,6CAA8C;AAC9C,2DAAiE;AACjE,yCAA+C;AAE/C,6CAA6B;AAC7B,0DAA0C;AAC1C,wEAAwD;AAE3C,QAAA,OAAO,GAAG;IACnB,oBAAoB;IACpB,yBAAY;IACZ,YAAY;IAEZ,2BAA2B;IAC3B,4CAAwB;IAExB,8BAA8B;IAC9B,iBAAW;IACX,iBAAW;IACX,YAAY;IAEZ,0BAA0B;IAC1B,iCAAwB;IACxB,2BAAkB;IAClB,yBAAgB;IAChB,YAAY;IAEZ,uBAAuB;IACvB,gBAAW;IACX,YAAY;CACf,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { RequestHandler } from "express";
2
+ import { JISEventsRepository } from "../../data-access/JISEventsRepository";
3
+ import { JISEventsCustomFormatTransformation } from "../../transofrmations/JISEventsCustomFormatTransformation";
4
+ export declare class V1EventsController {
5
+ private jisEventsRepository;
6
+ private eventsCustomFormatTransformation;
7
+ constructor(jisEventsRepository: JISEventsRepository, eventsCustomFormatTransformation: JISEventsCustomFormatTransformation);
8
+ getAllEventsInCustomFormat: RequestHandler;
9
+ private recordBadRequestException;
10
+ private isValidQueryStringParam;
11
+ private isValidQueryArrayParam;
12
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.V1EventsController = void 0;
16
+ const OgJisToken_1 = require("../../ioc/OgJisToken");
17
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
18
+ const JISEventsRepository_1 = require("../../data-access/JISEventsRepository");
19
+ const JISEventsCustomFormatTransformation_1 = require("../../transofrmations/JISEventsCustomFormatTransformation");
20
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
21
+ const monitoring_1 = require("@golemio/core/dist/monitoring");
22
+ let V1EventsController = exports.V1EventsController = class V1EventsController {
23
+ constructor(jisEventsRepository, eventsCustomFormatTransformation) {
24
+ this.jisEventsRepository = jisEventsRepository;
25
+ this.eventsCustomFormatTransformation = eventsCustomFormatTransformation;
26
+ this.getAllEventsInCustomFormat = async (req, res, next) => {
27
+ const span = (0, monitoring_1.createChildSpan)("V1EventsController.getAllEventsInCustomFormat");
28
+ try {
29
+ const { organizationNames, displayPeriodStart, displayPeriodEnd } = req.query;
30
+ if (organizationNames !== undefined && !this.isValidQueryArrayParam(organizationNames)) {
31
+ return next(this.recordBadRequestException("organizationNames is not valid", span));
32
+ }
33
+ else if (displayPeriodStart && !this.isValidQueryStringParam(displayPeriodStart)) {
34
+ return next(this.recordBadRequestException("displayPeriodStart is not valid", span));
35
+ }
36
+ else if (displayPeriodEnd && !this.isValidQueryStringParam(displayPeriodEnd)) {
37
+ return next(this.recordBadRequestException("displayPeriodEnd is not valid", span));
38
+ }
39
+ const events = await this.jisEventsRepository.getAllForCustomFormat(organizationNames, displayPeriodStart, displayPeriodEnd);
40
+ const transformedEvents = this.eventsCustomFormatTransformation.transformArray(events);
41
+ return res.status(200).json(transformedEvents);
42
+ }
43
+ catch (err) {
44
+ span?.recordException(err);
45
+ next(err);
46
+ }
47
+ finally {
48
+ span?.end();
49
+ }
50
+ };
51
+ this.recordBadRequestException = (errorMessage, span) => {
52
+ const exception = new golemio_errors_1.GeneralError(errorMessage, this.constructor.name, undefined, 400);
53
+ span?.recordException(exception);
54
+ return exception;
55
+ };
56
+ this.isValidQueryStringParam = (param) => {
57
+ return typeof param === "string";
58
+ };
59
+ this.isValidQueryArrayParam = (param) => {
60
+ return Array.isArray(param) && param.length > 0 && param.every((item) => typeof item === "string");
61
+ };
62
+ }
63
+ };
64
+ exports.V1EventsController = V1EventsController = __decorate([
65
+ (0, tsyringe_1.injectable)(),
66
+ __param(0, (0, tsyringe_1.inject)(OgJisToken_1.OgJisToken.JISEventsRepository)),
67
+ __param(1, (0, tsyringe_1.inject)(OgJisToken_1.OgJisToken.JISEventsCustomFormatTransformation)),
68
+ __metadata("design:paramtypes", [JISEventsRepository_1.JISEventsRepository,
69
+ JISEventsCustomFormatTransformation_1.JISEventsCustomFormatTransformation])
70
+ ], V1EventsController);
71
+ //# sourceMappingURL=V1EventsController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"V1EventsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/jis/controllers/v1/V1EventsController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { JISEventsModel } from "../../../schema-definitions/jis/models/JISEventsModel";
2
+ import { ILogger } from "@golemio/core/dist/helpers";
3
+ import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postgres/IDatabaseConnector";
4
+ import { AbstractValidatableRepository } from "@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractValidatableRepository";
5
+ import { JSONSchemaValidator } from "@golemio/core/dist/shared/golemio-validator";
6
+ import { ModelStatic } from "@golemio/core/dist/shared/sequelize";
7
+ import { JISEventsRopidGTFSRoutesRepository } from "./JISEventsRopidGTFSRoutesRepository";
8
+ import { RopidGTFSRoutesRepository } from "./RopidGTFSRoutesRepository";
9
+ export declare class JISEventsRepository extends AbstractValidatableRepository {
10
+ private eventsRopidGTFSRoutesRepository;
11
+ private ropidGTFSRoutesRepository;
12
+ validator: JSONSchemaValidator;
13
+ schema: string;
14
+ tableName: string;
15
+ sequelizeModel: ModelStatic<JISEventsModel>;
16
+ constructor(connector: IDatabaseConnector, logger: ILogger, eventsRopidGTFSRoutesRepository: JISEventsRopidGTFSRoutesRepository, ropidGTFSRoutesRepository: RopidGTFSRoutesRepository);
17
+ getAllForCustomFormat: (organizationNames?: string[], displayPeriodStart?: string, displayPeriodEnd?: string) => Promise<JISEventsModel[]>;
18
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.JISEventsRepository = void 0;
16
+ const const_1 = require("../../../schema-definitions/const");
17
+ const JISEventsModel_1 = require("../../../schema-definitions/jis/models/JISEventsModel");
18
+ const AbstractValidatableRepository_1 = require("@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractValidatableRepository");
19
+ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
20
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
21
+ const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
22
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
23
+ const JISEventsRopidGTFSRoutesRepository_1 = require("./JISEventsRopidGTFSRoutesRepository");
24
+ const OgJisToken_1 = require("../ioc/OgJisToken");
25
+ const RopidGTFSRoutesRepository_1 = require("./RopidGTFSRoutesRepository");
26
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
27
+ let JISEventsRepository = exports.JISEventsRepository = class JISEventsRepository extends AbstractValidatableRepository_1.AbstractValidatableRepository {
28
+ constructor(connector, logger, eventsRopidGTFSRoutesRepository, ropidGTFSRoutesRepository) {
29
+ super(connector, logger);
30
+ this.eventsRopidGTFSRoutesRepository = eventsRopidGTFSRoutesRepository;
31
+ this.ropidGTFSRoutesRepository = ropidGTFSRoutesRepository;
32
+ this.schema = const_1.PG_SCHEMA;
33
+ this.tableName = JISEventsModel_1.JISEventsModel.tableName;
34
+ this.getAllForCustomFormat = async (organizationNames, displayPeriodStart, displayPeriodEnd) => {
35
+ try {
36
+ const where = {};
37
+ if (organizationNames) {
38
+ where.organization_name = { [sequelize_1.Op.in]: organizationNames };
39
+ }
40
+ if (displayPeriodStart) {
41
+ where.display_period_start = { [sequelize_1.Op.gte]: displayPeriodStart };
42
+ }
43
+ if (displayPeriodEnd) {
44
+ where.display_period_end = { [sequelize_1.Op.or]: [{ [sequelize_1.Op.lte]: displayPeriodEnd }, { [sequelize_1.Op.is]: null }] };
45
+ }
46
+ return await this.sequelizeModel.findAll({
47
+ where,
48
+ include: { model: this.ropidGTFSRoutesRepository["sequelizeModel"], as: "routes" },
49
+ });
50
+ }
51
+ catch (err) {
52
+ throw new golemio_errors_1.GeneralError("Error in getAllForCustomFormat", this.constructor.name, err);
53
+ }
54
+ };
55
+ this.validator = new golemio_validator_1.JSONSchemaValidator("JISEventsModel", JISEventsModel_1.JISEventsModel.jsonSchema);
56
+ this.sequelizeModel = connector
57
+ .getConnection()
58
+ .define(this.tableName, JISEventsModel_1.JISEventsModel.attributeModel, { schema: this.schema });
59
+ this.sequelizeModel.belongsToMany(this.ropidGTFSRoutesRepository["sequelizeModel"], {
60
+ through: eventsRopidGTFSRoutesRepository["sequelizeModel"],
61
+ foreignKey: "event_id",
62
+ otherKey: "route_id",
63
+ as: "routes",
64
+ });
65
+ }
66
+ };
67
+ exports.JISEventsRepository = JISEventsRepository = __decorate([
68
+ (0, tsyringe_1.injectable)(),
69
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.PostgresConnector)),
70
+ __param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
71
+ __param(2, (0, tsyringe_1.inject)(OgJisToken_1.OgJisToken.JISEventsRopidGTFSRoutesRepository)),
72
+ __param(3, (0, tsyringe_1.inject)(OgJisToken_1.OgJisToken.RopidGTFSRoutesRepository)),
73
+ __metadata("design:paramtypes", [Object, Object, JISEventsRopidGTFSRoutesRepository_1.JISEventsRopidGTFSRoutesRepository,
74
+ RopidGTFSRoutesRepository_1.RopidGTFSRoutesRepository])
75
+ ], JISEventsRepository);
76
+ //# sourceMappingURL=JISEventsRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JISEventsRepository.js","sourceRoot":"","sources":["../../../../src/output-gateway/jis/data-access/JISEventsRepository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { ILogger } from "@golemio/core/dist/helpers";
2
+ import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postgres/IDatabaseConnector";
3
+ import { AbstractValidatableRepository } from "@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractValidatableRepository";
4
+ import { JSONSchemaValidator } from "@golemio/core/dist/shared/golemio-validator";
5
+ export declare class JISEventsRopidGTFSRoutesRepository extends AbstractValidatableRepository {
6
+ private logger;
7
+ validator: JSONSchemaValidator;
8
+ schema: string;
9
+ tableName: string;
10
+ private sequelizeModel;
11
+ constructor(connector: IDatabaseConnector, logger: ILogger);
12
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.JISEventsRopidGTFSRoutesRepository = void 0;
16
+ const const_1 = require("../../../schema-definitions/const");
17
+ const JISEventsRopidGTFSRoutesModel_1 = require("../../../schema-definitions/jis/models/JISEventsRopidGTFSRoutesModel");
18
+ const AbstractValidatableRepository_1 = require("@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractValidatableRepository");
19
+ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
20
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
21
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
22
+ let JISEventsRopidGTFSRoutesRepository = exports.JISEventsRopidGTFSRoutesRepository = class JISEventsRopidGTFSRoutesRepository extends AbstractValidatableRepository_1.AbstractValidatableRepository {
23
+ constructor(connector, logger) {
24
+ super(connector, logger);
25
+ this.logger = logger;
26
+ this.schema = const_1.PG_SCHEMA;
27
+ this.tableName = JISEventsRopidGTFSRoutesModel_1.JISEventsRopidGTFSRoutesModel.tableName;
28
+ this.validator = new golemio_validator_1.JSONSchemaValidator("JISEventsRopidGTFSRoutesRepository", JISEventsRopidGTFSRoutesModel_1.JISEventsRopidGTFSRoutesModel.jsonSchema);
29
+ this.sequelizeModel = connector
30
+ .getConnection()
31
+ .define(this.tableName, JISEventsRopidGTFSRoutesModel_1.JISEventsRopidGTFSRoutesModel.attributeModel, { schema: this.schema });
32
+ }
33
+ };
34
+ exports.JISEventsRopidGTFSRoutesRepository = JISEventsRopidGTFSRoutesRepository = __decorate([
35
+ (0, tsyringe_1.injectable)(),
36
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.PostgresConnector)),
37
+ __param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
38
+ __metadata("design:paramtypes", [Object, Object])
39
+ ], JISEventsRopidGTFSRoutesRepository);
40
+ //# sourceMappingURL=JISEventsRopidGTFSRoutesRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JISEventsRopidGTFSRoutesRepository.js","sourceRoot":"","sources":["../../../../src/output-gateway/jis/data-access/JISEventsRopidGTFSRoutesRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAAuC;AACvC,wHAA8F;AAG9F,8IAA2I;AAC3I,wEAAqE;AACrE,mFAAkF;AAElF,iEAAwE;AAGjE,IAAM,kCAAkC,gDAAxC,MAAM,kCAAmC,SAAQ,6DAA6B;IAOjF,YACyC,SAA6B,EACxC,MAAuB;QAEjD,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAFS,WAAM,GAAN,MAAM,CAAS;QAP9C,WAAM,GAAG,iBAAS,CAAC;QACnB,cAAS,GAAG,6DAA6B,CAAC,SAAS,CAAC;QASvD,IAAI,CAAC,SAAS,GAAG,IAAI,uCAAmB,CAAC,oCAAoC,EAAE,6DAA6B,CAAC,UAAU,CAAC,CAAC;QACzH,IAAI,CAAC,cAAc,GAAG,SAAS;aAC1B,aAAa,EAAE;aACf,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,6DAA6B,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACvG,CAAC;CACJ,CAAA;6CAjBY,kCAAkC;IAD9C,IAAA,qBAAU,GAAE;IASJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,iBAAiB,CAAC,CAAA;IACnC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GATpB,kCAAkC,CAiB9C"}
@@ -0,0 +1,12 @@
1
+ import { ILogger } from "@golemio/core/dist/helpers";
2
+ import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postgres/IDatabaseConnector";
3
+ import { AbstractValidatableRepository } from "@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractValidatableRepository";
4
+ import { JSONSchemaValidator } from "@golemio/core/dist/shared/golemio-validator";
5
+ export declare class RopidGTFSRoutesRepository extends AbstractValidatableRepository {
6
+ private logger;
7
+ validator: JSONSchemaValidator;
8
+ schema: string;
9
+ tableName: any;
10
+ private sequelizeModel;
11
+ constructor(connector: IDatabaseConnector, logger: ILogger);
12
+ }