@golemio/pid 3.15.3-dev.1830712365 → 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 (64) 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/repositories/JISEventsRepository.d.ts +2 -4
  6. package/dist/integration-engine/jis/repositories/JISEventsRepository.js +16 -56
  7. package/dist/integration-engine/jis/repositories/JISEventsRepository.js.map +1 -1
  8. package/dist/integration-engine/jis/repositories/JISEventsRopidGTFSRoutesRepository.d.ts +0 -2
  9. package/dist/integration-engine/jis/repositories/JISEventsRopidGTFSRoutesRepository.js +0 -21
  10. package/dist/integration-engine/jis/repositories/JISEventsRopidGTFSRoutesRepository.js.map +1 -1
  11. package/dist/integration-engine/jis/services/JISEventsDataService.d.ts +5 -5
  12. package/dist/integration-engine/jis/services/JISEventsDataService.js +8 -12
  13. package/dist/integration-engine/jis/services/JISEventsDataService.js.map +1 -1
  14. package/dist/integration-engine/jis/transformations/JISEventsTransformation.js +3 -0
  15. package/dist/integration-engine/jis/transformations/JISEventsTransformation.js.map +1 -1
  16. package/dist/integration-engine/jis/workers/tasks/RefreshJISEventsTask.js +1 -1
  17. package/dist/integration-engine/jis/workers/tasks/RefreshJISEventsTask.js.map +1 -1
  18. package/dist/output-gateway/index.js +4 -0
  19. package/dist/output-gateway/index.js.map +1 -1
  20. package/dist/output-gateway/jis/controllers/v1/V1EventsController.d.ts +12 -0
  21. package/dist/output-gateway/jis/controllers/v1/V1EventsController.js +71 -0
  22. package/dist/output-gateway/jis/controllers/v1/V1EventsController.js.map +1 -0
  23. package/dist/output-gateway/jis/data-access/JISEventsRepository.d.ts +18 -0
  24. package/dist/output-gateway/jis/data-access/JISEventsRepository.js +76 -0
  25. package/dist/output-gateway/jis/data-access/JISEventsRepository.js.map +1 -0
  26. package/dist/output-gateway/jis/data-access/JISEventsRopidGTFSRoutesRepository.d.ts +12 -0
  27. package/dist/output-gateway/jis/data-access/JISEventsRopidGTFSRoutesRepository.js +40 -0
  28. package/dist/output-gateway/jis/data-access/JISEventsRopidGTFSRoutesRepository.js.map +1 -0
  29. package/dist/output-gateway/jis/data-access/RopidGTFSRoutesRepository.d.ts +12 -0
  30. package/dist/output-gateway/jis/data-access/RopidGTFSRoutesRepository.js +39 -0
  31. package/dist/output-gateway/jis/data-access/RopidGTFSRoutesRepository.js.map +1 -0
  32. package/dist/output-gateway/jis/domain/IJISEventsInterfaces.d.ts +36 -0
  33. package/dist/output-gateway/jis/domain/IJISEventsInterfaces.js +3 -0
  34. package/dist/output-gateway/jis/domain/IJISEventsInterfaces.js.map +1 -0
  35. package/dist/output-gateway/jis/helpers/TranslationHelper.d.ts +4 -0
  36. package/dist/output-gateway/jis/helpers/TranslationHelper.js +48 -0
  37. package/dist/output-gateway/jis/helpers/TranslationHelper.js.map +1 -0
  38. package/dist/output-gateway/jis/ioc/Di.d.ts +3 -0
  39. package/dist/output-gateway/jis/ioc/Di.js +27 -0
  40. package/dist/output-gateway/jis/ioc/Di.js.map +1 -0
  41. package/dist/output-gateway/jis/ioc/OgJisToken.d.ts +8 -0
  42. package/dist/output-gateway/jis/ioc/OgJisToken.js +20 -0
  43. package/dist/output-gateway/jis/ioc/OgJisToken.js.map +1 -0
  44. package/dist/output-gateway/jis/routers/v1/V1JISRouter.d.ts +12 -0
  45. package/dist/output-gateway/jis/routers/v1/V1JISRouter.js +33 -0
  46. package/dist/output-gateway/jis/routers/v1/V1JISRouter.js.map +1 -0
  47. package/dist/output-gateway/jis/routers/v1/index.d.ts +1 -0
  48. package/dist/output-gateway/jis/routers/v1/index.js +6 -0
  49. package/dist/output-gateway/jis/routers/v1/index.js.map +1 -0
  50. package/dist/output-gateway/jis/transofrmations/JISEventsCustomFormatTransformation.d.ts +10 -0
  51. package/dist/output-gateway/jis/transofrmations/JISEventsCustomFormatTransformation.js +72 -0
  52. package/dist/output-gateway/jis/transofrmations/JISEventsCustomFormatTransformation.js.map +1 -0
  53. package/dist/output-gateway/pid/ioc/Di.js +0 -1
  54. package/dist/output-gateway/pid/ioc/Di.js.map +1 -1
  55. package/dist/schema-definitions/jis/datasources/JISEventsJsonSchema.js +17 -0
  56. package/dist/schema-definitions/jis/datasources/JISEventsJsonSchema.js.map +1 -1
  57. package/dist/schema-definitions/jis/datasources/interfaces/IJISEvent.d.ts +5 -0
  58. package/dist/schema-definitions/jis/models/JISEventsModel.d.ts +6 -3
  59. package/dist/schema-definitions/jis/models/JISEventsModel.js +20 -0
  60. package/dist/schema-definitions/jis/models/JISEventsModel.js.map +1 -1
  61. package/dist/schema-definitions/jis/models/interfaces/IJISEvent.d.ts +3 -0
  62. package/docs/openapi-input.yaml +35 -1
  63. package/docs/openapi-output.yaml +267 -0
  64. 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;
@@ -18,20 +18,18 @@ export declare class JISEventsRepository extends AbstractValidatableRepository {
18
18
  private sequelizeModel;
19
19
  private ropidGTFSRoutesRepository;
20
20
  constructor(connector: IDatabaseConnector, logger: ILogger, eventsRopidGTFSRoutesRepository: JISEventsRopidGTFSRoutesRepository);
21
- deleteAndCountAllLastUpdatedBefore(dateTime: Date, options?: RepositoryOptions): Promise<number>;
22
21
  getCurrentIncidents(organizationNames: string[]): Promise<Array<JISEventsModel & {
23
22
  routes: Array<{
24
23
  route_id: string;
25
24
  }>;
26
25
  }>>;
27
26
  /**
28
- * Refresh all data from VYMI and delete old data
27
+ * Refresh all data from VYMI
29
28
  *
30
29
  * @param data The data to be upserted
31
30
  * @param options Options for the operation
32
31
  */
33
- refreshData(data: IJISEvent[], options?: RepositoryOptions): Promise<JISEventsModel[]>;
32
+ upsertAll(data: IJISEvent[], options?: RepositoryOptions): Promise<JISEventsModel[]>;
34
33
  private getUpdateAttributes;
35
- deleteAndCountAll(options?: RepositoryOptions): Promise<number>;
36
34
  }
37
35
  export {};
@@ -44,23 +44,15 @@ let JISEventsRepository = exports.JISEventsRepository = class JISEventsRepositor
44
44
  as: "routes",
45
45
  });
46
46
  }
47
- async deleteAndCountAllLastUpdatedBefore(dateTime, options) {
48
- try {
49
- return await this.sequelizeModel.destroy({
50
- where: {
51
- updated_at: { [sequelize_1.Op.lt]: dateTime },
52
- },
53
- transaction: options?.transaction,
54
- });
55
- }
56
- catch (err) {
57
- throw new golemio_errors_1.GeneralError("Error in deleteAndCountAllLastUpdatedBefore", this.constructor.name, err);
58
- }
59
- }
60
47
  async getCurrentIncidents(organizationNames) {
48
+ const now = new Date();
61
49
  try {
62
50
  return (await this.sequelizeModel.findAll({
63
- where: { type: "INCIDENT", organization_name: organizationNames },
51
+ where: {
52
+ type: "INCIDENT",
53
+ organization_name: organizationNames,
54
+ [sequelize_1.Op.or]: [{ active_period_end: null }, { active_period_end: { [sequelize_1.Op.gte]: now } }],
55
+ },
64
56
  include: [
65
57
  {
66
58
  model: this.ropidGTFSRoutesRepository["sequelizeModel"],
@@ -76,63 +68,31 @@ let JISEventsRepository = exports.JISEventsRepository = class JISEventsRepositor
76
68
  }
77
69
  }
78
70
  /**
79
- * Refresh all data from VYMI and delete old data
71
+ * Refresh all data from VYMI
80
72
  *
81
73
  * @param data The data to be upserted
82
74
  * @param options Options for the operation
83
75
  */
84
- async refreshData(data, options) {
76
+ async upsertAll(data, options) {
85
77
  try {
86
- const currentEvents = await this.sequelizeModel.findAll({ transaction: options?.transaction });
87
- const currentEventsMap = new Map();
88
- for (const event of currentEvents) {
89
- currentEventsMap.set(event.id, event);
90
- }
91
- const toBeUpserted = [];
92
- for (const event of data) {
93
- const info = currentEventsMap.get(event.id);
94
- if (!info || info.updated_at <= event.updated_timestamp) {
95
- toBeUpserted.push(event);
96
- }
97
- currentEventsMap.delete(event.id);
98
- }
99
- const toBeDeleted = [];
100
- for (const { id } of currentEventsMap.values()) {
101
- toBeDeleted.push(id);
102
- }
103
- const [upserted] = await Promise.all([
104
- this.sequelizeModel.bulkCreate(toBeUpserted, {
105
- updateOnDuplicate: this.getUpdateAttributes(),
106
- transaction: options?.transaction,
107
- }),
108
- this.sequelizeModel.destroy({
109
- where: {
110
- id: { [sequelize_1.Op.in]: toBeDeleted },
111
- },
112
- transaction: options?.transaction,
113
- }),
114
- ]);
78
+ const upserted = await this.sequelizeModel.bulkCreate(data, {
79
+ updateOnDuplicate: this.getUpdateAttributes(),
80
+ transaction: options?.transaction,
81
+ });
82
+ this.logger.info(`${this.constructor.name}.upsertAll: upserted ${upserted.length} JIS events.`);
115
83
  return upserted;
116
84
  }
117
85
  catch (err) {
118
- if (err instanceof sequelize_1.ValidationError && err.errors?.length > 0) {
86
+ if (err instanceof sequelize_1.ValidationError && err.errors?.length) {
119
87
  const mappedErrors = err.errors.map((e) => `${e.message} (${e.value})`).join(", ");
120
- throw new golemio_errors_1.ValidationError(`Validation error in refreshData: ${mappedErrors}`, this.constructor.name, err, undefined, "pid");
88
+ throw new golemio_errors_1.ValidationError(`Validation error in upsertAll: ${mappedErrors}`, this.constructor.name, err, undefined, "pid");
121
89
  }
122
- throw new golemio_errors_1.GeneralError("Error in refreshData", this.constructor.name, err);
90
+ throw new golemio_errors_1.GeneralError("Error in upsertAll", this.constructor.name, err);
123
91
  }
124
92
  }
125
93
  getUpdateAttributes() {
126
94
  return Object.keys(JISEventsModel_1.JISEventsModel.attributeModel).filter((attribute) => !["created_at"].includes(attribute));
127
95
  }
128
- async deleteAndCountAll(options) {
129
- try {
130
- return await this.sequelizeModel.destroy({ where: {}, transaction: options?.transaction });
131
- }
132
- catch (err) {
133
- throw new golemio_errors_1.GeneralError("Error in deleteAndCountAll", this.constructor.name, err);
134
- }
135
- }
136
96
  };
137
97
  exports.JISEventsRepository = JISEventsRepository = __decorate([
138
98
  (0, tsyringe_1.injectable)(),
@@ -1 +1 @@
1
- {"version":3,"file":"JISEventsRepository.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/repositories/JISEventsRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JISEventsRepository.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/repositories/JISEventsRepository.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,6 @@ export declare class JISEventsRopidGTFSRoutesRepository extends AbstractValidata
15
15
  tableName: string;
16
16
  private sequelizeModel;
17
17
  constructor(connector: IDatabaseConnector, logger: ILogger);
18
- deleteAndCountAllLastUpdatedBefore(dateTime: Date, options?: RepositoryOptions): Promise<number>;
19
18
  /**
20
19
  * Insert or update all given data. In case of an update, all attributes except for `created_at` shall be overwritten.
21
20
  *
@@ -25,6 +24,5 @@ export declare class JISEventsRopidGTFSRoutesRepository extends AbstractValidata
25
24
  */
26
25
  upsertAll(data: IJISEventsRopidGTFSRoutes[], options?: RepositoryOptions): ReturnType<ModelStatic<JISEventsRopidGTFSRoutesModel>["bulkCreate"]>;
27
26
  private getUpdateAttributes;
28
- deleteAndCountAll(options?: RepositoryOptions): Promise<number>;
29
27
  }
30
28
  export {};
@@ -32,19 +32,6 @@ let JISEventsRopidGTFSRoutesRepository = exports.JISEventsRopidGTFSRoutesReposit
32
32
  .getConnection()
33
33
  .define(this.tableName, JISEventsRopidGTFSRoutesModel_1.JISEventsRopidGTFSRoutesModel.attributeModel, { schema: this.schema });
34
34
  }
35
- async deleteAndCountAllLastUpdatedBefore(dateTime, options) {
36
- try {
37
- return await this.sequelizeModel.destroy({
38
- where: {
39
- updated_at: { [sequelize_1.Op.lt]: dateTime },
40
- },
41
- transaction: options?.transaction,
42
- });
43
- }
44
- catch (err) {
45
- throw new golemio_errors_1.GeneralError("Error in deleteAndCountAllLastUpdatedBefore", this.constructor.name, err);
46
- }
47
- }
48
35
  /**
49
36
  * Insert or update all given data. In case of an update, all attributes except for `created_at` shall be overwritten.
50
37
  *
@@ -70,14 +57,6 @@ let JISEventsRopidGTFSRoutesRepository = exports.JISEventsRopidGTFSRoutesReposit
70
57
  getUpdateAttributes() {
71
58
  return Object.keys(JISEventsRopidGTFSRoutesModel_1.JISEventsRopidGTFSRoutesModel.attributeModel).filter((attribute) => !["created_at"].includes(attribute));
72
59
  }
73
- async deleteAndCountAll(options) {
74
- try {
75
- return await this.sequelizeModel.destroy({ where: {}, transaction: options?.transaction });
76
- }
77
- catch (err) {
78
- throw new golemio_errors_1.GeneralError("Error in deleteAndCountAll", this.constructor.name, err);
79
- }
80
- }
81
60
  };
82
61
  exports.JISEventsRopidGTFSRoutesRepository = JISEventsRopidGTFSRoutesRepository = __decorate([
83
62
  (0, tsyringe_1.injectable)(),
@@ -1 +1 @@
1
- {"version":3,"file":"JISEventsRopidGTFSRoutesRepository.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/repositories/JISEventsRopidGTFSRoutesRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JISEventsRopidGTFSRoutesRepository.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/repositories/JISEventsRopidGTFSRoutesRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAAuC;AACvC,wHAA8F;AAI9F,8IAA2I;AAC3I,wEAAqE;AACrE,6EAAyF;AACzF,mFAAkF;AAClF,mEAAgI;AAChI,iEAAwE;AAOjE,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;IAED;;;;;;OAMG;IACI,KAAK,CAAC,SAAS,CAClB,IAAiC,EACjC,OAA2B;QAE3B,IAAI;YACA,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE;gBAC9C,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,EAAS;gBACpD,WAAW,EAAE,OAAO,EAAE,WAAW;aACpC,CAAC,CAAC;SACN;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,GAAG,YAAY,2BAAwB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE;gBACnE,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnF,MAAM,IAAI,gCAAe,CACrB,kCAAkC,YAAY,EAAE,EAChD,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,EACH,SAAS,EACT,KAAK,CACR,CAAC;aACL;YACD,MAAM,IAAI,6BAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC5E;IACL,CAAC;IAEO,mBAAmB;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,6DAA6B,CAAC,cAAc,CAAC,CAAC,MAAM,CACnE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CACrD,CAAC;IACN,CAAC;CACJ,CAAA;6CAtDY,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,CAsD9C"}
@@ -10,11 +10,11 @@ export declare class JISEventsDataService {
10
10
  private logger;
11
11
  constructor(eventsRepository: JISEventsRepository, eventsRopidGTFSRoutesRepository: JISEventsRopidGTFSRoutesRepository, databaseConnector: IDatabaseConnector, logger: ILogger);
12
12
  /**
13
- * Insert or update all given events and eventsRopidGTFSRoutes data. In case of an update, all attributes except for
14
- * `created_at` shall be overwritten. Delete all non-updated data from before the refresh.
13
+ * Refresh all JIS event data by inserting or updating the given events and their ROPID-GTFS routes.
14
+ * Existing records are preserved and only incoming events/routes are upserted.
15
15
  *
16
- * @param events The events data to be upserted
17
- * @param eventsRopidGTFSRoutes The eventsRopidGTFSRoutes data to be upserted
16
+ * @param events Array of JIS events to insert or update.
17
+ * @param eventsRopidGTFSRoutes Array of corresponding ROPID-GTFS route records to insert or update.
18
18
  */
19
- refreshData(events: IJISEvent[], eventsRopidGTFSRoutes: IJISEventsRopidGTFSRoutes[]): Promise<void>;
19
+ upsertAll(events: IJISEvent[], eventsRopidGTFSRoutes: IJISEventsRopidGTFSRoutes[]): Promise<void>;
20
20
  }
@@ -28,29 +28,25 @@ let JISEventsDataService = exports.JISEventsDataService = class JISEventsDataSer
28
28
  // do nothing
29
29
  }
30
30
  /**
31
- * Insert or update all given events and eventsRopidGTFSRoutes data. In case of an update, all attributes except for
32
- * `created_at` shall be overwritten. Delete all non-updated data from before the refresh.
31
+ * Refresh all JIS event data by inserting or updating the given events and their ROPID-GTFS routes.
32
+ * Existing records are preserved and only incoming events/routes are upserted.
33
33
  *
34
- * @param events The events data to be upserted
35
- * @param eventsRopidGTFSRoutes The eventsRopidGTFSRoutes data to be upserted
34
+ * @param events Array of JIS events to insert or update.
35
+ * @param eventsRopidGTFSRoutes Array of corresponding ROPID-GTFS route records to insert or update.
36
36
  */
37
- async refreshData(events, eventsRopidGTFSRoutes) {
37
+ async upsertAll(events, eventsRopidGTFSRoutes) {
38
38
  const connection = this.databaseConnector.getConnection();
39
39
  const transaction = await connection.transaction();
40
- const saveTime = new Date();
41
40
  try {
42
41
  if (events.length === 0) {
43
- await this.eventsRopidGTFSRoutesRepository.deleteAndCountAll({ transaction });
44
- await this.eventsRepository.deleteAndCountAll({ transaction });
42
+ this.logger.info(`${this.constructor.name}.upsertAll: 0 events were imported - keeping existing data`);
45
43
  await transaction.commit();
46
- this.logger.info(`${this.constructor.name}.refreshData: all JIS events were deleted because 0 events were imported`);
47
44
  }
48
45
  else {
49
- await this.eventsRepository.refreshData(events, { transaction });
46
+ await this.eventsRepository.upsertAll(events, { transaction });
50
47
  await this.eventsRopidGTFSRoutesRepository.upsertAll(eventsRopidGTFSRoutes, { transaction });
51
- await this.eventsRopidGTFSRoutesRepository.deleteAndCountAllLastUpdatedBefore(saveTime, { transaction });
52
48
  await transaction.commit();
53
- this.logger.info(`${this.constructor.name}.refreshData: ${events.length} JIS events and ` +
49
+ this.logger.info(`${this.constructor.name}.upsertAll: ${events.length} JIS events and ` +
54
50
  `${eventsRopidGTFSRoutes.length} JIS eventsRopidGTFSRoutes were saved`);
55
51
  }
56
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"JISEventsDataService.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/services/JISEventsDataService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gEAAkE;AAClE,6EAA+E;AAC/E,2GAA6G;AAI7G,wEAAqE;AACrE,6EAAwE;AACxE,iEAAwE;AAGjE,IAAM,oBAAoB,kCAA1B,MAAM,oBAAoB;IAC7B,YAEY,gBAAqC,EAErC,+BAAmE,EAC9B,iBAAqC,EAChD,MAAe;QAJzC,qBAAgB,GAAhB,gBAAgB,CAAqB;QAErC,oCAA+B,GAA/B,+BAA+B,CAAoC;QAC9B,sBAAiB,GAAjB,iBAAiB,CAAoB;QAChD,WAAM,GAAN,MAAM,CAAS;QAEjD,aAAa;IACjB,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,WAAW,CAAC,MAAmB,EAAE,qBAAkD;QAC5F,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;QAE5B,IAAI;YACA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,MAAM,IAAI,CAAC,+BAA+B,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC9E,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC/D,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,0EAA0E,CACrG,CAAC;aACL;iBAAM;gBACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;gBACjE,MAAM,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,qBAAqB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC7F,MAAM,IAAI,CAAC,+BAA+B,CAAC,kCAAkC,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;gBACzG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,iBAAiB,MAAM,CAAC,MAAM,kBAAkB;oBACpE,GAAG,qBAAqB,CAAC,MAAM,uCAAuC,CAC7E,CAAC;aACL;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,GAAG,YAAY,6BAAY;gBAAE,MAAM,GAAG,CAAC;YAC3C,MAAM,IAAI,6BAAY,CAAC,0CAA0C,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAClG;IACL,CAAC;CACJ,CAAA;+BAhDY,oBAAoB;IADhC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,qCAAiB,CAAC,mBAAmB,CAAC,CAAA;IAE7C,WAAA,IAAA,iBAAM,EAAC,qCAAiB,CAAC,kCAAkC,CAAC,CAAA;IAE5D,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,iBAAiB,CAAC,CAAA;IACnC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCAJC,yCAAmB;QAEJ,uEAAkC;GALtE,oBAAoB,CAgDhC"}
1
+ {"version":3,"file":"JISEventsDataService.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/services/JISEventsDataService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gEAAkE;AAClE,6EAA+E;AAC/E,2GAA6G;AAI7G,wEAAqE;AACrE,6EAAwE;AACxE,iEAAwE;AAGjE,IAAM,oBAAoB,kCAA1B,MAAM,oBAAoB;IAC7B,YAEY,gBAAqC,EAErC,+BAAmE,EAC9B,iBAAqC,EAChD,MAAe;QAJzC,qBAAgB,GAAhB,gBAAgB,CAAqB;QAErC,oCAA+B,GAA/B,+BAA+B,CAAoC;QAC9B,sBAAiB,GAAjB,iBAAiB,CAAoB;QAChD,WAAM,GAAN,MAAM,CAAS;QAEjD,aAAa;IACjB,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,SAAS,CAAC,MAAmB,EAAE,qBAAkD;QAC1F,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;QAEnD,IAAI;YACA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,4DAA4D,CAAC,CAAC;gBACvG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;aAC9B;iBAAM;gBACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC/D,MAAM,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,qBAAqB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC7F,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,eAAe,MAAM,CAAC,MAAM,kBAAkB;oBAClE,GAAG,qBAAqB,CAAC,MAAM,uCAAuC,CAC7E,CAAC;aACL;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,GAAG,YAAY,6BAAY;gBAAE,MAAM,GAAG,CAAC;YAC3C,MAAM,IAAI,6BAAY,CAAC,0CAA0C,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAClG;IACL,CAAC;CACJ,CAAA;+BA1CY,oBAAoB;IADhC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,qCAAiB,CAAC,mBAAmB,CAAC,CAAA;IAE7C,WAAA,IAAA,iBAAM,EAAC,qCAAiB,CAAC,kCAAkC,CAAC,CAAA;IAE5D,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,iBAAiB,CAAC,CAAA;IACnC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCAJC,yCAAmB;QAEJ,uEAAkC;GALtE,oBAAoB,CA0ChC"}
@@ -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"}
@@ -33,7 +33,7 @@ let RefreshJISEventsTask = exports.RefreshJISEventsTask = class RefreshJISEvents
33
33
  async execute(data) {
34
34
  const transformedData = this.eventsTransformation.transformArray(data);
35
35
  const { events, eventsRopidGTFSRoutes } = this.getEntitiesFromTransformationResult(transformedData);
36
- await this.eventsDataService.refreshData(events, eventsRopidGTFSRoutes);
36
+ await this.eventsDataService.upsertAll(events, eventsRopidGTFSRoutes);
37
37
  }
38
38
  getEntitiesFromTransformationResult(transformedData) {
39
39
  const eventEntities = [];