@golemio/parkings 1.8.10 → 1.8.11-dev.1265893684

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 (133) hide show
  1. package/db/example/01_sql_dump.sql +7 -7
  2. package/db/example/08_isphk_data.sql +0 -1
  3. package/db/migrations/postgresql/20240410092219-parking-source-entrances.js +53 -0
  4. package/db/migrations/postgresql/20240412095925-parking-prohibitions.js +53 -0
  5. package/db/migrations/postgresql/sqls/20240410092219-parking-source-entrances-down.sql +1 -0
  6. package/db/migrations/postgresql/sqls/20240410092219-parking-source-entrances-up.sql +1 -0
  7. package/db/migrations/postgresql/sqls/20240412095925-parking-prohibitions-down.sql +1 -0
  8. package/db/migrations/postgresql/sqls/20240412095925-parking-prohibitions-up.sql +13 -0
  9. package/dist/helpers/data-access/CachedParkingSourcesRepository.d.ts +6 -0
  10. package/dist/helpers/data-access/CachedParkingSourcesRepository.js +15 -0
  11. package/dist/helpers/data-access/CachedParkingSourcesRepository.js.map +1 -1
  12. package/dist/integration-engine/datasources/iptoict/IptOictEntrancesDataSource.d.ts +3 -0
  13. package/dist/integration-engine/datasources/iptoict/IptOictEntrancesDataSource.js +29 -0
  14. package/dist/integration-engine/datasources/iptoict/IptOictEntrancesDataSource.js.map +1 -0
  15. package/dist/integration-engine/datasources/iptoict/IptOictParkingsProhibitionsDataSource.d.ts +6 -0
  16. package/dist/integration-engine/datasources/iptoict/IptOictParkingsProhibitionsDataSource.js +41 -0
  17. package/dist/integration-engine/datasources/iptoict/IptOictParkingsProhibitionsDataSource.js.map +1 -0
  18. package/dist/integration-engine/datasources/parkomats/ParkomatsDataSource.d.ts +8 -0
  19. package/dist/integration-engine/datasources/{manual/ManualEntrancesDatasource.js → parkomats/ParkomatsDataSource.js} +17 -17
  20. package/dist/integration-engine/datasources/parkomats/ParkomatsDataSource.js.map +1 -0
  21. package/dist/integration-engine/index.d.ts +4 -2
  22. package/dist/integration-engine/index.js +11 -2
  23. package/dist/integration-engine/index.js.map +1 -1
  24. package/dist/integration-engine/ioc/Di.js +22 -4
  25. package/dist/integration-engine/ioc/Di.js.map +1 -1
  26. package/dist/integration-engine/ioc/ModuleContainerToken.d.ts +11 -1
  27. package/dist/integration-engine/ioc/ModuleContainerToken.js +17 -1
  28. package/dist/integration-engine/ioc/ModuleContainerToken.js.map +1 -1
  29. package/dist/integration-engine/queueDefinitions.js +0 -17
  30. package/dist/integration-engine/queueDefinitions.js.map +1 -1
  31. package/dist/integration-engine/repositories/ParkingsProhibitionsRepository.d.ts +4 -0
  32. package/dist/integration-engine/repositories/ParkingsProhibitionsRepository.js +19 -0
  33. package/dist/integration-engine/repositories/ParkingsProhibitionsRepository.js.map +1 -0
  34. package/dist/integration-engine/repositories/ParkomatsRepository.d.ts +4 -0
  35. package/dist/integration-engine/repositories/ParkomatsRepository.js +19 -0
  36. package/dist/integration-engine/repositories/ParkomatsRepository.js.map +1 -0
  37. package/dist/integration-engine/transformations/IptOictParkingProhibitionsTransformation.d.ts +7 -0
  38. package/dist/integration-engine/transformations/IptOictParkingProhibitionsTransformation.js +26 -0
  39. package/dist/integration-engine/transformations/IptOictParkingProhibitionsTransformation.js.map +1 -0
  40. package/dist/integration-engine/transformations/MrParkitGarageTransformation.d.ts +1 -0
  41. package/dist/integration-engine/transformations/MrParkitGarageTransformation.js +10 -1
  42. package/dist/integration-engine/transformations/MrParkitGarageTransformation.js.map +1 -1
  43. package/dist/integration-engine/transformations/ParkomatsTransformation.d.ts +3 -1
  44. package/dist/integration-engine/transformations/ParkomatsTransformation.js.map +1 -1
  45. package/dist/integration-engine/transformations/interfaces/IMrParkitGarageTransformation.d.ts +2 -0
  46. package/dist/integration-engine/transformations/iptoict/IptOictEntrancesTransformation.d.ts +10 -0
  47. package/dist/integration-engine/transformations/iptoict/IptOictEntrancesTransformation.js +30 -0
  48. package/dist/integration-engine/transformations/iptoict/IptOictEntrancesTransformation.js.map +1 -0
  49. package/dist/integration-engine/workers/NewParkingsWorker.js +3 -1
  50. package/dist/integration-engine/workers/NewParkingsWorker.js.map +1 -1
  51. package/dist/integration-engine/workers/ParkomatsWorker.d.ts +6 -0
  52. package/dist/integration-engine/workers/ParkomatsWorker.js +19 -0
  53. package/dist/integration-engine/workers/ParkomatsWorker.js.map +1 -0
  54. package/dist/integration-engine/workers/schemas/ParkingSourceSchema.d.ts +1 -0
  55. package/dist/integration-engine/workers/schemas/ParkingSourceSchema.js +5 -0
  56. package/dist/integration-engine/workers/schemas/ParkingSourceSchema.js.map +1 -1
  57. package/dist/integration-engine/workers/schemas/ParkomatSchema.d.ts +8 -0
  58. package/dist/integration-engine/workers/schemas/ParkomatSchema.js +27 -0
  59. package/dist/integration-engine/workers/schemas/ParkomatSchema.js.map +1 -0
  60. package/dist/integration-engine/workers/tasks/GenerateIptOictEntrancesJobsTask.d.ts +11 -0
  61. package/dist/integration-engine/workers/tasks/{SaveManualEntrancesDataTask.js → GenerateIptOictEntrancesJobsTask.js} +22 -23
  62. package/dist/integration-engine/workers/tasks/GenerateIptOictEntrancesJobsTask.js.map +1 -0
  63. package/dist/integration-engine/workers/tasks/RefreshDataInDbTask.d.ts +17 -0
  64. package/dist/integration-engine/workers/tasks/RefreshDataInDbTask.js +76 -0
  65. package/dist/integration-engine/workers/tasks/RefreshDataInDbTask.js.map +1 -0
  66. package/dist/integration-engine/workers/tasks/SaveIptOictEntrancesDataTask.d.ts +17 -0
  67. package/dist/integration-engine/workers/tasks/SaveIptOictEntrancesDataTask.js +90 -0
  68. package/dist/integration-engine/workers/tasks/SaveIptOictEntrancesDataTask.js.map +1 -0
  69. package/dist/integration-engine/workers/tasks/SaveIptOictProhibitionsDataTask.d.ts +11 -0
  70. package/dist/integration-engine/workers/tasks/SaveIptOictProhibitionsDataTask.js +64 -0
  71. package/dist/integration-engine/workers/tasks/SaveIptOictProhibitionsDataTask.js.map +1 -0
  72. package/dist/integration-engine/workers/tasks/SaveMrParkitDataTask.d.ts +3 -1
  73. package/dist/integration-engine/workers/tasks/SaveMrParkitDataTask.js +10 -3
  74. package/dist/integration-engine/workers/tasks/SaveMrParkitDataTask.js.map +1 -1
  75. package/dist/output-gateway/controllers/v3/V3ParkingController.d.ts +1 -0
  76. package/dist/output-gateway/controllers/v3/V3ParkingController.js +5 -3
  77. package/dist/output-gateway/controllers/v3/V3ParkingController.js.map +1 -1
  78. package/dist/output-gateway/data-access/ParkingProhibitionsRepository.d.ts +6 -0
  79. package/dist/output-gateway/data-access/ParkingProhibitionsRepository.js +34 -0
  80. package/dist/output-gateway/data-access/ParkingProhibitionsRepository.js.map +1 -0
  81. package/dist/output-gateway/data-access/ParkingRepository.d.ts +3 -1
  82. package/dist/output-gateway/data-access/ParkingRepository.js +25 -2
  83. package/dist/output-gateway/data-access/ParkingRepository.js.map +1 -1
  84. package/dist/output-gateway/ioc/Di.js +7 -5
  85. package/dist/output-gateway/ioc/Di.js.map +1 -1
  86. package/dist/output-gateway/ioc/ModuleContainerToken.d.ts +1 -0
  87. package/dist/output-gateway/ioc/ModuleContainerToken.js +1 -0
  88. package/dist/output-gateway/ioc/ModuleContainerToken.js.map +1 -1
  89. package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.d.ts +4 -2
  90. package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.js +14 -4
  91. package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.js.map +1 -1
  92. package/dist/output-gateway/transformations/v3/ParkingMeasurementDtoTransformation.js +1 -1
  93. package/dist/output-gateway/transformations/v3/ParkingMeasurementDtoTransformation.js.map +1 -1
  94. package/dist/schema-definitions/datasources/InputParkingSourceSchema.js +1 -0
  95. package/dist/schema-definitions/datasources/InputParkingSourceSchema.js.map +1 -1
  96. package/dist/schema-definitions/datasources/interfaces/{IManualEntrancesProperties.d.ts → IIptOictEntrancesProperties.d.ts} +1 -1
  97. package/dist/schema-definitions/datasources/interfaces/IIptOictEntrancesProperties.js +3 -0
  98. package/dist/schema-definitions/datasources/interfaces/IIptOictEntrancesProperties.js.map +1 -0
  99. package/dist/schema-definitions/datasources/iptoict/IptOictParkingProhibitionsSchema.d.ts +3 -0
  100. package/dist/schema-definitions/datasources/iptoict/IptOictParkingProhibitionsSchema.js +40 -0
  101. package/dist/schema-definitions/datasources/iptoict/IptOictParkingProhibitionsSchema.js.map +1 -0
  102. package/dist/schema-definitions/datasources/iptoict/interfaces/IptOictParkingProhibitions.d.ts +14 -0
  103. package/dist/schema-definitions/datasources/{interfaces/IManualEntrancesProperties.js → iptoict/interfaces/IptOictParkingProhibitions.js} +1 -1
  104. package/dist/schema-definitions/datasources/iptoict/interfaces/IptOictParkingProhibitions.js.map +1 -0
  105. package/dist/schema-definitions/models/ParkingProhibitionsModel.d.ts +18 -0
  106. package/dist/schema-definitions/models/ParkingProhibitionsModel.js +41 -0
  107. package/dist/schema-definitions/models/ParkingProhibitionsModel.js.map +1 -0
  108. package/dist/schema-definitions/models/ParkingSourcesModel.d.ts +1 -0
  109. package/dist/schema-definitions/models/ParkingSourcesModel.js +1 -0
  110. package/dist/schema-definitions/models/ParkingSourcesModel.js.map +1 -1
  111. package/dist/schema-definitions/models/interfaces/IParking.d.ts +2 -0
  112. package/dist/schema-definitions/models/interfaces/IParkingProhibitions.d.ts +10 -0
  113. package/dist/schema-definitions/models/interfaces/IParkingProhibitions.js +3 -0
  114. package/dist/schema-definitions/models/interfaces/IParkingProhibitions.js.map +1 -0
  115. package/dist/schema-definitions/models/interfaces/IParkingSource.d.ts +1 -0
  116. package/docs/implementation-documentation.md +96 -11
  117. package/docs/openapi-admin-input.yaml +31 -3
  118. package/docs/openapi-output.yaml +37 -0
  119. package/package.json +3 -3
  120. package/dist/integration-engine/ParkomatsWorker.d.ts +0 -10
  121. package/dist/integration-engine/ParkomatsWorker.js +0 -77
  122. package/dist/integration-engine/ParkomatsWorker.js.map +0 -1
  123. package/dist/integration-engine/datasources/manual/ManualEntrancesDatasource.d.ts +0 -9
  124. package/dist/integration-engine/datasources/manual/ManualEntrancesDatasource.js.map +0 -1
  125. package/dist/integration-engine/transformations/EntrancesManualTransformation.d.ts +0 -8
  126. package/dist/integration-engine/transformations/EntrancesManualTransformation.js +0 -31
  127. package/dist/integration-engine/transformations/EntrancesManualTransformation.js.map +0 -1
  128. package/dist/integration-engine/workers/tasks/SaveManualEntrancesDataTask.d.ts +0 -11
  129. package/dist/integration-engine/workers/tasks/SaveManualEntrancesDataTask.js.map +0 -1
  130. package/dist/schema-definitions/datasources/interfaces/IManualEntrancesProperties.js.map +0 -1
  131. package/dist/schema-definitions/datasources/manual/ManualEntrancesParkingSchema.d.ts +0 -0
  132. package/dist/schema-definitions/datasources/manual/ManualEntrancesParkingSchema.js +0 -2
  133. package/dist/schema-definitions/datasources/manual/ManualEntrancesParkingSchema.js.map +0 -1
@@ -42,10 +42,11 @@ Pro statické (ručně zadané) tarify se stahuje JSON ze zdroje IPT.
42
42
 
43
43
  Pro statické (ručně vytvořené) polygony placených parkovišť se stahuje GeoJSON ze zdroje IPT.
44
44
 
45
- Data o vjezdech do parkovišť se stahují z ručně vytvořeného zdroje IPT.
46
- Data o parkovacích automatech OSM se stahují z exportovaného zdroje IPT.
45
+ **Data o vjezdech** do parkovišť se stahují ze zdroje poskytovatele, pokud má uvedenou url vjezdů v tabulce poskytovatelů.
47
46
 
48
- Data o platbách se stahují z ručně vytvořeného zdroje IPT, nejsou-li součástí púvodního.
47
+ **Data o parkovacích automatech** OSM se stahují z exportovaného zdroje IPT.
48
+
49
+ **Data o platbách** se stahují z ručně vytvořeného zdroje IPT, nejsou-li součástí púvodního.
49
50
 
50
51
  #### Zóny placeného stání
51
52
 
@@ -244,6 +245,24 @@ Vybraným parkovištím může být nahrazena location za Multipolygon ze zdroje
244
245
  - dataplatform.parkings.updateSmart4CityLocations
245
246
  - dataplatform.parkings.updateSmart4CityMeasurements
246
247
 
248
+ #### _parkomats_
249
+ - zdroj dat
250
+ - url: `https://apicore.zpspraha.cz/CISICTService/CISICTService.svc/parkingsessionshistory`
251
+ - parametry
252
+ - `from` - nastavujeme na predchozi den 00
253
+ - `to` - nastavujeme na dnesni den v 04
254
+ - poznamka stahujeme data za 28 hodin abychom o zadna data neprisli
255
+ - protokol: http
256
+ - datovy typ: json
257
+ - validacni schema: [parkomatInputSchema](../src/schema-definitions/parkomats/datasources/ParkomatInputSchema.ts)
258
+ - frekvence stahovani:
259
+ - cron definice
260
+ - rabin: `0 04,16 * * *`
261
+ - prod: `0 07,19 * * *`
262
+ - nazev rabbitmq fronty
263
+ - dataplatform.parkomats.refreshDataInDB
264
+
265
+
247
266
  ## Zpracování dat / transformace
248
267
 
249
268
  Při transformaci dat lokací data obohacujeme o adresu parkoviště, která vychází z centroidu geometrie daného parkoviště a získává se z Photon API metodou `GeocodeApi.getAddressByLatLngFromPhoton` v modulu Core.
@@ -423,6 +442,21 @@ Vybraným parkovištím může být nahrazena location za Multipolygon ze zdroje
423
442
  - source: `jméno zdroje` dle. `parking_sources`
424
443
  - datové zdroje
425
444
  - `parking_sources` - záznamy obsahují url datového zdroje v `datasource_payments`
445
+
446
+ #### Task _SaveIptOictProhibitionsDataTask_
447
+
448
+ - vstupní rabbitmq fronta
449
+ - název: `dataplatform.parkings.saveIptOictProhibitionsDataTask`
450
+ - parametry:
451
+ - bez parametrů
452
+ - datové zdroje
453
+ - IptOictParkingsProhibitionsDataSource (http)
454
+ - json formát
455
+ - statická data
456
+ - transformace
457
+ - [IptOictParkingProhibitionsTransformation](../src/integration-engine/transformations/IptOictParkingProhibitionsTransformation.ts) - transformace plateb
458
+ - data modely
459
+ - ParkingProhibitionsModel -> (schéma parkings) `parking_prohibitions`
426
460
 
427
461
  #### Task _SaveIptOictParkingDataTask_
428
462
 
@@ -467,17 +501,31 @@ Vybraným parkovištím může být nahrazena location za Multipolygon ze zdroje
467
501
  - data modely
468
502
  - ParkingAverageOccupancyModel -> (schéma parkings) `parkings_average_occupancy`
469
503
 
470
- #### Task _SaveManualEntrancesDataTask_
504
+ #### Task _generateIptOictEntrancesJobsTask_
471
505
 
472
- - vstupní rabbitmq fronta
473
- - název: `dataplatform.parkings.saveManualEntrancesDataTask`
474
- - bez parametrů
506
+ - generuje zprávy s parametrem `source` pro `SaveIptOictEntrancesDataTask`
507
+ - vstupní rabbitmq fronta
508
+ - název: `dataplatform.parkings.generateIptOictEntrancesJobsTask`
509
+ - bez parametrů
510
+ - závislé fronty
511
+ - název: `dataplatform.parkings.saveIptOictEntrancesData`
512
+ - parametry:
513
+ - source: `jméno zdroje` dle. `parking_sources`
475
514
  - datové zdroje
476
- - Ipt blob storage ručně tvořený zdroj (http)
515
+ - `parking_sources` - záznamy obsahují url datového zdroje v `datasource_entrances`
516
+
517
+ #### Task _SaveIptOictEntrancesDataTask_
518
+
519
+ - vstupní rabbitmq fronta
520
+ - název: `dataplatform.parkings.saveIptOictEntrancesData`
521
+ - parametr je zdroj (source)
522
+ - zprávy s parametrem generuje `generateIptOictEntrancesJobsTask` přes stejnojmennou frontu bez parametrů
523
+ - datové zdroje
477
524
  - geojson formát
478
- - transformace
479
- - [EntrancesManualTransformation](../src/integration-engine/transformations/osm/OsmEntrancesTransformation.ts)
480
- - data modely
525
+ - data se stahují z url uvedené v `parking_sources`, sloupec `datasource_entrances`
526
+ - transformace
527
+ - [IptOictEntrancesTransformation](../src/integration-engine/transformations/iptoict/IptOictEntrancesTransformation.ts)
528
+ - data modely
481
529
  - EntranceModel -> (schéma parkings) `parking_entrances`
482
530
 
483
531
  ### Worker _ParkingsWorker_
@@ -577,6 +625,43 @@ Vybraným parkovištím může být nahrazena location za Multipolygon ze zdroje
577
625
  - ukládá data z queue `saveParkingSourceToDB` do db
578
626
  - zdroj je IG přes `ParkingSourcesRouter`
579
627
  - transformace není
628
+ -
629
+
630
+ ### ParkomatsWorker
631
+
632
+ #### _RefreshDataInDbTask_
633
+
634
+ - vstupní rabbitmq fronta:
635
+ - název: `refreshDataInDB`
636
+ - optional paramtery
637
+ - from
638
+ - to
639
+ - datový zdroj
640
+ - JSON stahovaný z API
641
+ - transformace
642
+ - Mapovani z `IParkomatInput` na `IParkomatDto`
643
+ - data modely
644
+ - `parkomats`
645
+
646
+
647
+
648
+ ### ParkomatsWorker
649
+
650
+ #### _RefreshDataInDbTask_
651
+
652
+ - vstupní rabbitmq fronta:
653
+ - název: `refreshDataInDB`
654
+ - optional paramtery
655
+ - from
656
+ - to
657
+ - datový zdroj
658
+ - JSON stahovaný z API
659
+ - transformace
660
+ - Mapovani z `IParkomatInput` na `IParkomatDto`
661
+ - data modely
662
+ - `parkomats`
663
+
664
+
580
665
 
581
666
  ## Uložení dat
582
667
 
@@ -67,11 +67,39 @@ components:
67
67
  legacy_api_allowed:
68
68
  type: boolean
69
69
  description: "povolit výstup na starší api (v1, v2)."
70
- payment_url:
70
+ payment:
71
+ type: object
72
+ nullable: true
73
+ description: "Sada URL, kde lze zaplatit parkovné"
74
+ properties:
75
+ web_url:
76
+ type: string
77
+ android_url:
78
+ type: string
79
+ ios_url:
80
+ type: string
81
+ discovery_url:
82
+ type: string
83
+ datasource_parking:
84
+ type: string
85
+ nullable: true
86
+ example: "https://parking-sources.cz/data/parkings.geojson"
87
+ description: "URL zdroje parkovišť"
88
+ datasource_locations:
89
+ type: string
90
+ nullable: true
91
+ example: "https://parking-sources.cz/data/parking_locations.geojson"
92
+ description: "URL zdroje parking locations"
93
+ datasource_payments:
94
+ type: string
95
+ nullable: true
96
+ example: "https://parking-sources.cz/data/parking_locations.geojson"
97
+ description: "URL zdroje parking locations"
98
+ datasource_entrances:
71
99
  type: string
72
100
  nullable: true
73
- example: "https://parking.liberec.cz/"
74
- description: "URL, kde lze zaplatit parkovné"
101
+ example: "https://parking-sources.cz/data/parking_entrances.geojson"
102
+ description: "URL zdroje vjezdů parkovišť"
75
103
  contact:
76
104
  type: object
77
105
  nullable: true
@@ -1714,6 +1714,8 @@ components:
1714
1714
  example: null
1715
1715
  dimensions:
1716
1716
  $ref: '#/components/schemas/ParkingDimension'
1717
+ parking_prohibitions:
1718
+ $ref: '#/components/schemas/ParkingProhibitions'
1717
1719
  covered:
1718
1720
  type: boolean
1719
1721
  nullable: true
@@ -2462,3 +2464,38 @@ components:
2462
2464
  - start
2463
2465
  - end
2464
2466
  - ph
2467
+ ParkingProhibitions:
2468
+ type: object
2469
+ title: Vehicles with prohibited access
2470
+ properties:
2471
+ lpg/cng:
2472
+ type: boolean
2473
+ nullable: true
2474
+ description: 'LPG/CNG vehicles permitted to enter the parking.'
2475
+ bus:
2476
+ type: boolean
2477
+ nullable: true
2478
+ description: 'buses permitted to enter the parking.'
2479
+ truck:
2480
+ type: boolean
2481
+ nullable: true
2482
+ description: 'trucks permitted to enter the parking.'
2483
+ motorcycle:
2484
+ type: boolean
2485
+ nullable: true
2486
+ description: 'motorcycles permitted to enter the parking.'
2487
+ bicycle:
2488
+ type: boolean
2489
+ nullable: true
2490
+ description: 'bicycles permitted to enter the parking.'
2491
+ trailer:
2492
+ type: boolean
2493
+ nullable: true
2494
+ description: 'trailers permitted to enter the parking.'
2495
+ required:
2496
+ - lpg/cng
2497
+ - bus
2498
+ - truck
2499
+ - motorcycle
2500
+ - bicycle
2501
+ - trailer
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/parkings",
3
- "version": "1.8.10",
3
+ "version": "1.8.11-dev.1265893684",
4
4
  "description": "Golemio Parkings Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -36,7 +36,7 @@
36
36
  "@commitlint/cli": "^11.0.0",
37
37
  "@commitlint/config-conventional": "^11.0.0",
38
38
  "@golemio/cli": "1.5.0",
39
- "@golemio/core": "1.9.16",
39
+ "@golemio/core": "1.9.17",
40
40
  "@golemio/db-common": "1.1.3",
41
41
  "@golemio/eslint-config": "1.1.1",
42
42
  "@types/body-parser": "^1.19.5",
@@ -80,4 +80,4 @@
80
80
  "@turf/turf": "^6.5.0",
81
81
  "uuid-by-string": "^3.0.2"
82
82
  }
83
- }
83
+ }
@@ -1,10 +0,0 @@
1
- import { BaseWorker } from "@golemio/core/dist/integration-engine/workers";
2
- export declare class ParkomatsWorker extends BaseWorker {
3
- private dataSource;
4
- private dataSourceHTTPSettings;
5
- private transformation;
6
- private model;
7
- private dataSourceUrl;
8
- constructor();
9
- refreshDataInDB: (msg: any) => Promise<void>;
10
- }
@@ -1,77 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ParkomatsWorker = void 0;
13
- const _sch_1 = require("../schema-definitions");
14
- const ParkomatInputSchema_1 = require("../schema-definitions/parkomats/datasources/ParkomatInputSchema");
15
- const ParkomatDto_1 = require("../schema-definitions/parkomats/models/ParkomatDto");
16
- const helpers_1 = require("@golemio/core/dist/helpers");
17
- const config_1 = require("@golemio/core/dist/integration-engine/config");
18
- const datasources_1 = require("@golemio/core/dist/integration-engine/datasources");
19
- const HTTPFetchProtocolStrategy_1 = require("@golemio/core/dist/integration-engine/datasources/protocol-strategy/HTTPFetchProtocolStrategy");
20
- const helpers_2 = require("@golemio/core/dist/integration-engine/helpers");
21
- const models_1 = require("@golemio/core/dist/integration-engine/models");
22
- const workers_1 = require("@golemio/core/dist/integration-engine/workers");
23
- const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
24
- const ParkomatsTransformation_1 = require("./transformations/ParkomatsTransformation");
25
- class ParkomatsWorker extends workers_1.BaseWorker {
26
- constructor() {
27
- super();
28
- this.dataSourceUrl = config_1.config.datasources.TSKParkomats + "/parkingsessions?from=";
29
- this.refreshDataInDB = (msg) => __awaiter(this, void 0, void 0, function* () {
30
- let from;
31
- let to;
32
- try {
33
- // setting custom interval from message data
34
- const customInterval = JSON.parse(msg.content.toString());
35
- if (customInterval.from && customInterval.to) {
36
- from = (0, helpers_1.dateTime)(new Date(customInterval.from), { timeZone: "Europe/Prague" });
37
- to = (0, helpers_1.dateTime)(new Date(customInterval.to), { timeZone: "Europe/Prague" });
38
- helpers_2.log.debug(`Interval from: ${from} to ${to} was used.`);
39
- }
40
- else {
41
- throw new Error("Interval must contain from and to properties.");
42
- }
43
- }
44
- catch (err) {
45
- // setting default interval (normal situation)
46
- to = (0, helpers_1.dateTime)(new Date()).setTimeZone("Europe/Prague");
47
- from = to.clone();
48
- from.subtract(12, "minutes");
49
- }
50
- this.dataSourceHTTPSettings.url =
51
- this.dataSourceUrl + from.format("yyyy-LL-dd'T'HH:mm:ss") + `&to=${to.format("yyyy-LL-dd'T'HH:mm:ss")}`;
52
- this.dataSource.setProtocolStrategy(new HTTPFetchProtocolStrategy_1.HTTPFetchProtocolStrategy(this.dataSourceHTTPSettings));
53
- const data = yield this.dataSource.getAll();
54
- const transformedData = yield this.transformation.transform(data);
55
- yield this.model.save(transformedData);
56
- });
57
- this.dataSourceHTTPSettings = {
58
- headers: {
59
- authorization: config_1.config.datasources.TSKParkomatsToken,
60
- },
61
- method: "GET",
62
- // Warning! Url must be filled with required `from` and `to` querystring param
63
- // if `to` omitted, API returns empty array!
64
- url: this.dataSourceUrl,
65
- };
66
- this.dataSource = new datasources_1.DataSource(_sch_1.Parkomats.name + "DataSource", new HTTPFetchProtocolStrategy_1.HTTPFetchProtocolStrategy(this.dataSourceHTTPSettings), new datasources_1.JSONDataTypeStrategy({ resultsPath: "" }), new golemio_validator_1.JSONSchemaValidator(_sch_1.Parkomats.name + "DataSource", ParkomatInputSchema_1.ParkomatInputSchema));
67
- this.model = new models_1.PostgresModel(_sch_1.Parkomats.name + "Model", {
68
- outputSequelizeAttributes: ParkomatDto_1.ParkomatDto.attributeModel,
69
- pgSchema: _sch_1.Parkomats.pgSchema,
70
- pgTableName: _sch_1.Parkomats.pgTableName,
71
- savingType: "insertOrUpdate",
72
- }, new golemio_validator_1.JSONSchemaValidator(_sch_1.Parkomats.name + "ModelValidator", ParkomatDto_1.ParkomatDto.jsonSchema));
73
- this.transformation = new ParkomatsTransformation_1.ParkomatsTransformation();
74
- }
75
- }
76
- exports.ParkomatsWorker = ParkomatsWorker;
77
- //# sourceMappingURL=ParkomatsWorker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ParkomatsWorker.js","sourceRoot":"","sources":["../../src/integration-engine/ParkomatsWorker.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { IManualEntrancesProperties } from "../../../schema-definitions/datasources/interfaces/IManualEntrancesProperties";
2
- import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
3
- import { IGenericFeature } from "./../interfaces/IGenericFeature";
4
- export declare class ManualEntrancesDatasource {
5
- private config;
6
- private url;
7
- constructor(config: ISimpleConfig);
8
- getManualEntrances(): Promise<Array<IGenericFeature<IManualEntrancesProperties>>>;
9
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"ManualEntrancesDatasource.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/manual/ManualEntrancesDatasource.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,qJAA2H;AAG3H,wEAAqE;AACrE,8EAAyF;AACzF,6IAA0I;AAC1I,mFAAkF;AAClF,iEAAwE;AAIjE,IAAM,yBAAyB,uCAA/B,MAAM,yBAAyB;IAGlC,YAAoD,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QACrE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAS,sDAAsD,CAAC,CAAC;IACpG,CAAC;IAEY,kBAAkB;;YAC3B,OAAO,IAAI,+BAAU,CACjB,sBAAsB,EACtB,IAAI,qDAAyB,CAAC;gBAC1B,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,OAAO,EAAE;oBACL,cAAc,EAAE,kBAAkB;iBACrC;aACJ,CAAC,EACF,IAAI,yCAAoB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EACrD,IAAI,uCAAmB,CACnB,kCAAkC,EAClC,iFAAuC,CAAC,yBAAyB,EAAE,CAAC,UAAU,CAAC,QAAQ,CAC1F,CACJ,CAAC,MAAM,EAAE,CAAC;QACf,CAAC;KAAA;CACJ,CAAA;oCAxBY,yBAAyB;IADrC,IAAA,qBAAU,GAAE;IAII,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;;GAHlC,yBAAyB,CAwBrC"}
@@ -1,8 +0,0 @@
1
- import { IGenericFeature } from "../datasources/interfaces/IGenericFeature";
2
- import { IManualEntrancesProperties } from "../../schema-definitions/datasources/interfaces/IManualEntrancesProperties";
3
- import { IEntrance } from "../../schema-definitions/models/interfaces/IEntrance";
4
- import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
5
- export declare class EntrancesManualTransformation extends AbstractTransformation<IGenericFeature<IManualEntrancesProperties>, IEntrance> {
6
- name: string;
7
- protected transformInternal: (element: IGenericFeature<IManualEntrancesProperties>) => IEntrance;
8
- }
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EntrancesManualTransformation = void 0;
4
- const SourceEnum_1 = require("../../helpers/constants/SourceEnum");
5
- const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
6
- class EntrancesManualTransformation extends AbstractTransformation_1.AbstractTransformation {
7
- constructor() {
8
- super(...arguments);
9
- this.name = "EntrancesManualTransformation";
10
- this.transformInternal = (element) => {
11
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
12
- const transformed = {
13
- entrance_id: element.properties.source_id,
14
- source: SourceEnum_1.SourceEnum.Isphk,
15
- parking_id: `${SourceEnum_1.SourceEnum.Isphk}-${element.properties.parking_id}`,
16
- max_height: (_b = (_a = element.properties) === null || _a === void 0 ? void 0 : _a.dimension) === null || _b === void 0 ? void 0 : _b.max_height,
17
- level: element.properties.level,
18
- location: element.geometry,
19
- entry: (_d = (_c = element.properties) === null || _c === void 0 ? void 0 : _c.entry) !== null && _d !== void 0 ? _d : null,
20
- exit: (_f = (_e = element.properties) === null || _e === void 0 ? void 0 : _e.exit) !== null && _f !== void 0 ? _f : null,
21
- entrance_type: ((_h = (_g = element.properties) === null || _g === void 0 ? void 0 : _g.entrance_type) === null || _h === void 0 ? void 0 : _h.length) ? (_j = element.properties) === null || _j === void 0 ? void 0 : _j.entrance_type : null,
22
- max_width: (_m = (_l = (_k = element.properties) === null || _k === void 0 ? void 0 : _k.dimension) === null || _l === void 0 ? void 0 : _l.max_width) !== null && _m !== void 0 ? _m : null,
23
- max_length: (_q = (_p = (_o = element.properties) === null || _o === void 0 ? void 0 : _o.dimension) === null || _p === void 0 ? void 0 : _p.max_length) !== null && _q !== void 0 ? _q : null,
24
- max_weight: (_t = (_s = (_r = element.properties) === null || _r === void 0 ? void 0 : _r.dimension) === null || _s === void 0 ? void 0 : _s.max_weight) !== null && _t !== void 0 ? _t : null,
25
- };
26
- return transformed;
27
- };
28
- }
29
- }
30
- exports.EntrancesManualTransformation = EntrancesManualTransformation;
31
- //# sourceMappingURL=EntrancesManualTransformation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntrancesManualTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/EntrancesManualTransformation.ts"],"names":[],"mappings":";;;AAAA,mEAA2D;AAI3D,6GAA0G;AAG1G,MAAa,6BAA8B,SAAQ,+CAGlD;IAHD;;QAIW,SAAI,GAAW,+BAA+B,CAAC;QAE5C,sBAAiB,GAAG,CAAC,OAAoD,EAAE,EAAE;;YACnF,MAAM,WAAW,GAAc;gBAC3B,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS;gBACzC,MAAM,EAAE,uBAAU,CAAC,KAAK;gBACxB,UAAU,EAAE,GAAG,uBAAU,CAAC,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE;gBAClE,UAAU,EAAE,MAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,SAAS,0CAAE,UAAU;gBACrD,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK;gBAC/B,QAAQ,EAAE,OAAO,CAAC,QAA2B;gBAC7C,KAAK,EAAE,MAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,KAAK,mCAAI,IAAI;gBACxC,IAAI,EAAE,MAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,IAAI,mCAAI,IAAI;gBACtC,aAAa,EAAE,CAAA,MAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,aAAa,0CAAE,MAAM,EAAC,CAAC,CAAC,MAAA,OAAO,CAAC,UAAU,0CAAE,aAAa,CAAC,CAAC,CAAC,IAAI;gBACnG,SAAS,EAAE,MAAA,MAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,SAAS,0CAAE,SAAS,mCAAI,IAAI;gBAC3D,UAAU,EAAE,MAAA,MAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,SAAS,0CAAE,UAAU,mCAAI,IAAI;gBAC7D,UAAU,EAAE,MAAA,MAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,SAAS,0CAAE,UAAU,mCAAI,IAAI;aAChE,CAAC;YAEF,OAAO,WAAW,CAAC;QACvB,CAAC,CAAC;IACN,CAAC;CAAA;AAxBD,sEAwBC"}
@@ -1,11 +0,0 @@
1
- import { ManualEntrancesDatasource } from "../../datasources/manual/ManualEntrancesDatasource";
2
- import { ParkingEntrancesRepository } from "../../repositories/ParkingEntrancesRepository";
3
- import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine/workers/AbstractEmptyTask";
4
- export declare class SaveManualEntrancesDataTask extends AbstractEmptyTask {
5
- private manualEntrancesDataSource;
6
- private parkingEntrancesRepository;
7
- readonly queueName = "saveManualEntrancesDataTask";
8
- readonly queueTtl: number;
9
- constructor(manualEntrancesDataSource: ManualEntrancesDatasource, parkingEntrancesRepository: ParkingEntrancesRepository);
10
- protected execute(): Promise<void>;
11
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"SaveManualEntrancesDataTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/SaveManualEntrancesDataTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,kGAA6F;AAC7F,yEAAoE;AACpE,8FAAyF;AACzF,uGAAkG;AAClG,uGAAoG;AACpG,iEAAwE;AACxE,4CAAwD;AACxD,sEAA2D;AAGpD,IAAM,2BAA2B,yCAAjC,MAAM,2BAA4B,SAAQ,qCAAiB;IAI9D,YAC4D,yBAA4D,EAEpH,0BAA8D;QAE9D,KAAK,CAAC,oCAAwB,CAAC,CAAC;QAJgC,8BAAyB,GAAzB,yBAAyB,CAA2B;QAE5G,+BAA0B,GAA1B,0BAA0B,CAA4B;QANlD,cAAS,GAAG,6BAA6B,CAAC;QAC1C,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ;IAQnD,CAAC;IAEe,OAAO;;YACnB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,kBAAkB,EAAE,CAAC;YAC5E,MAAM,cAAc,GAAG,IAAI,6DAA6B,EAAE,CAAC;YAC3D,MAAM,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACjE,MAAM,IAAI,CAAC,0BAA0B,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC,uBAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9F,CAAC;KAAA;CACJ,CAAA;sCAlBY,2BAA2B;IADvC,IAAA,qBAAU,GAAE;IAMJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,yBAAyB,CAAC,CAAA;IACtD,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,0BAA0B,CAAC,CAAA;qCADmC,qDAAyB;QAEhF,uDAA0B;GAPzD,2BAA2B,CAkBvC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IManualEntrancesProperties.js","sourceRoot":"","sources":["../../../../src/schema-definitions/datasources/interfaces/IManualEntrancesProperties.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=ManualEntrancesParkingSchema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ManualEntrancesParkingSchema.js","sourceRoot":"","sources":["../../../../src/schema-definitions/datasources/manual/ManualEntrancesParkingSchema.ts"],"names":[],"mappings":""}