@golemio/parkings 1.23.3-dev.2111016379 → 1.23.3-dev.2129532503

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 (83) hide show
  1. package/db/migrations/postgresql/20251024121247-smart-4-city-v-2.js +53 -0
  2. package/db/migrations/postgresql/sqls/20251024121247-smart-4-city-v-2-down.sql +3 -0
  3. package/db/migrations/postgresql/sqls/20251024121247-smart-4-city-v-2-up.sql +3 -0
  4. package/dist/integration-engine/businessRules/DataSourceIntegrationChecker.js +1 -0
  5. package/dist/integration-engine/businessRules/DataSourceIntegrationChecker.js.map +1 -1
  6. package/dist/integration-engine/datasources/ParkingProviderDataSourceFactory.d.ts +1 -3
  7. package/dist/integration-engine/datasources/ParkingProviderDataSourceFactory.js +3 -7
  8. package/dist/integration-engine/datasources/ParkingProviderDataSourceFactory.js.map +1 -1
  9. package/dist/integration-engine/datasources/helpers/ParkingProviderEnum.d.ts +0 -2
  10. package/dist/integration-engine/datasources/helpers/ParkingProviderEnum.js +0 -2
  11. package/dist/integration-engine/datasources/helpers/ParkingProviderEnum.js.map +1 -1
  12. package/dist/integration-engine/datasources/interfaces/IParkingProviderDataSourceFactory.d.ts +1 -5
  13. package/dist/integration-engine/datasources/smart4city/graphql/ISmart4CityGraphQLReponse.d.ts +43 -0
  14. package/dist/{schema-definitions/datasources/interfaces/ISmart4CityList.js → integration-engine/datasources/smart4city/graphql/ISmart4CityGraphQLReponse.js} +1 -1
  15. package/dist/integration-engine/datasources/smart4city/graphql/ISmart4CityGraphQLReponse.js.map +1 -0
  16. package/dist/integration-engine/datasources/smart4city/graphql/Smart4CityGraphQLDataSource.d.ts +17 -0
  17. package/dist/integration-engine/datasources/smart4city/graphql/Smart4CityGraphQLDataSource.js +102 -0
  18. package/dist/integration-engine/datasources/smart4city/graphql/Smart4CityGraphQLDataSource.js.map +1 -0
  19. package/dist/integration-engine/helpers/Smart4CityRoleHelper.d.ts +8 -0
  20. package/dist/integration-engine/helpers/Smart4CityRoleHelper.js +41 -0
  21. package/dist/integration-engine/helpers/Smart4CityRoleHelper.js.map +1 -0
  22. package/dist/integration-engine/ioc/Di.js +9 -11
  23. package/dist/integration-engine/ioc/Di.js.map +1 -1
  24. package/dist/integration-engine/ioc/ModuleContainerToken.d.ts +3 -5
  25. package/dist/integration-engine/ioc/ModuleContainerToken.js +3 -5
  26. package/dist/integration-engine/ioc/ModuleContainerToken.js.map +1 -1
  27. package/dist/integration-engine/transformations/smart4city/Smart4CityParkingMeasurementsTransformation.d.ts +10 -0
  28. package/dist/integration-engine/transformations/smart4city/Smart4CityParkingMeasurementsTransformation.js +30 -0
  29. package/dist/integration-engine/transformations/smart4city/Smart4CityParkingMeasurementsTransformation.js.map +1 -0
  30. package/dist/integration-engine/transformations/smart4city/Smart4CityParkingTransformation.d.ts +19 -0
  31. package/dist/integration-engine/transformations/smart4city/Smart4CityParkingTransformation.js +91 -0
  32. package/dist/integration-engine/transformations/smart4city/Smart4CityParkingTransformation.js.map +1 -0
  33. package/dist/integration-engine/workers/NewParkingsWorker.js +1 -2
  34. package/dist/integration-engine/workers/NewParkingsWorker.js.map +1 -1
  35. package/dist/integration-engine/workers/schemas/UpdateSmart4CityDataSchema.d.ts +6 -0
  36. package/dist/integration-engine/workers/schemas/{Smart4CityTaskTypeSchema.js → UpdateSmart4CityDataSchema.js} +6 -6
  37. package/dist/integration-engine/workers/schemas/UpdateSmart4CityDataSchema.js.map +1 -0
  38. package/dist/integration-engine/workers/tasks/UpdateSmart4CityDataTask.d.ts +22 -0
  39. package/dist/integration-engine/workers/tasks/UpdateSmart4CityDataTask.js +91 -0
  40. package/dist/integration-engine/workers/tasks/UpdateSmart4CityDataTask.js.map +1 -0
  41. package/dist/schema-definitions/datasources/ParkingsDtoSchema.js +1 -1
  42. package/dist/schema-definitions/datasources/ParkingsDtoSchema.js.map +1 -1
  43. package/dist/schema-definitions/datasources/smart4city/Smart4CityGraphQLSchemas.d.ts +114 -0
  44. package/dist/schema-definitions/datasources/smart4city/Smart4CityGraphQLSchemas.js +118 -0
  45. package/dist/schema-definitions/datasources/smart4city/Smart4CityGraphQLSchemas.js.map +1 -0
  46. package/docs/asyncapi.yaml +7 -21
  47. package/docs/implementation_documentation.md +18 -50
  48. package/package.json +1 -1
  49. package/static-data/smart4cityLookup.json +47 -0
  50. package/dist/integration-engine/datasources/smart4city/Smart4CityListDataSourceProvider.d.ts +0 -11
  51. package/dist/integration-engine/datasources/smart4city/Smart4CityListDataSourceProvider.js +0 -45
  52. package/dist/integration-engine/datasources/smart4city/Smart4CityListDataSourceProvider.js.map +0 -1
  53. package/dist/integration-engine/datasources/smart4city/Smart4CityLocationDataSourceProvider.d.ts +0 -11
  54. package/dist/integration-engine/datasources/smart4city/Smart4CityLocationDataSourceProvider.js +0 -50
  55. package/dist/integration-engine/datasources/smart4city/Smart4CityLocationDataSourceProvider.js.map +0 -1
  56. package/dist/integration-engine/datasources/smart4city/SmartCityListDatasourceCache.d.ts +0 -10
  57. package/dist/integration-engine/datasources/smart4city/SmartCityListDatasourceCache.js +0 -41
  58. package/dist/integration-engine/datasources/smart4city/SmartCityListDatasourceCache.js.map +0 -1
  59. package/dist/integration-engine/transformations/Smart4CityMeasurementTransformation.d.ts +0 -10
  60. package/dist/integration-engine/transformations/Smart4CityMeasurementTransformation.js +0 -36
  61. package/dist/integration-engine/transformations/Smart4CityMeasurementTransformation.js.map +0 -1
  62. package/dist/integration-engine/workers/schemas/Smart4CityTaskTypeSchema.d.ts +0 -6
  63. package/dist/integration-engine/workers/schemas/Smart4CityTaskTypeSchema.js.map +0 -1
  64. package/dist/integration-engine/workers/schemas/UpdateSmart4CitySchema.d.ts +0 -6
  65. package/dist/integration-engine/workers/schemas/UpdateSmart4CitySchema.js +0 -21
  66. package/dist/integration-engine/workers/schemas/UpdateSmart4CitySchema.js.map +0 -1
  67. package/dist/integration-engine/workers/tasks/GenerateSmart4CityTaskListTask.d.ts +0 -16
  68. package/dist/integration-engine/workers/tasks/GenerateSmart4CityTaskListTask.js +0 -60
  69. package/dist/integration-engine/workers/tasks/GenerateSmart4CityTaskListTask.js.map +0 -1
  70. package/dist/integration-engine/workers/tasks/UpdateSmart4CityMeasurementsTask.d.ts +0 -12
  71. package/dist/integration-engine/workers/tasks/UpdateSmart4CityMeasurementsTask.js +0 -78
  72. package/dist/integration-engine/workers/tasks/UpdateSmart4CityMeasurementsTask.js.map +0 -1
  73. package/dist/schema-definitions/datasources/Smart4CityListJsonSchema.d.ts +0 -3
  74. package/dist/schema-definitions/datasources/Smart4CityListJsonSchema.js +0 -20
  75. package/dist/schema-definitions/datasources/Smart4CityListJsonSchema.js.map +0 -1
  76. package/dist/schema-definitions/datasources/Smart4CityLocationJsonSchema.d.ts +0 -3
  77. package/dist/schema-definitions/datasources/Smart4CityLocationJsonSchema.js +0 -22
  78. package/dist/schema-definitions/datasources/Smart4CityLocationJsonSchema.js.map +0 -1
  79. package/dist/schema-definitions/datasources/interfaces/ISmart4CityList.d.ts +0 -8
  80. package/dist/schema-definitions/datasources/interfaces/ISmart4CityList.js.map +0 -1
  81. package/dist/schema-definitions/datasources/interfaces/ISmart4CityLocation.d.ts +0 -10
  82. package/dist/schema-definitions/datasources/interfaces/ISmart4CityLocation.js +0 -3
  83. package/dist/schema-definitions/datasources/interfaces/ISmart4CityLocation.js.map +0 -1
@@ -163,34 +163,26 @@ Zóny placeného stání se stahují z API TSK (CIS VHD CD API) značené jako v
163
163
 
164
164
  #### _Smart4City_
165
165
 
166
- - ze zdroje stahujeme pouze měření. Statická data jsou obohacena mimo datovou platformu a stahují se pomocí obecného způsobu IptOict z blob storage
166
+ - ze zdroje stahujeme parkoviště, parkovací místa a měření.
167
167
 
168
168
  - zdroj dat (seznam měst)
169
- - url: config.datasources.parkings.Smart4City.ApiBaseUrl
169
+ - url: config.datasources.parkings.Smart4City.graphQL.url
170
170
  - formát dat
171
171
  - protokol: http
172
- - datový typ: json
173
- - validační schéma: [smart4CityListJsonSchema](../src/schema-definitions/datasources/Smart4CityListJsonSchema.ts)
174
- - příklad vstupnich dat: [smart4CityListInputDataFixture](../test/integration-engine/data/Smart4CityListInputDataFixture.ts)
172
+ - datový typ: json
173
+ - validační schéma: [smart4CityGraphQLResponse](../src/schema-definitions/datasources/smart4city/Smart4CityGraphQLSchemas.ts)
174
+ - příklad vstupnich dat: [smart4CityMeasurementsInput](../test/integration-engine/data/smart4city/smart4city-measurements-input.ts)
175
175
  - frekvence stahování
176
176
  - cron definice:
177
- - cron.dataplatform.parkings.generateSmart4CityTaskList
177
+ - cron.dataplatform.parkings.updateSmart4CityData
178
+ - rabin: parking `0 0 6 * * *`
179
+ - prod: parking `0 0 6 * * *`
178
180
  - rabin: measurements `0 */1 * * * *`
179
181
  - prod: measurements `0 */1 * * * *`
180
182
  - názvy rabbitmq front
181
- - dataplatform.parkings.generateSmart4CityTaskList
182
-
183
- - zdroj dat (data měst)
184
- - url: config.datasources.parkings.Smart4City.ApiBaseUrl + /`{city code}` + "/parkinglocations"
185
- - formát dat
186
- - protokol: http
187
- - datový typ: json
188
- - validační schéma: [smart4CityLocationJsonSchema](../src/schema-definitions/datasources/Smart4CityLocationJsonSchema.ts)
189
- - příklad vstupnich dat: [smart4CityInputDataFixture](../test/integration-engine/data/Smart4CityInputDataFixture.ts)
190
- - frekvence stahování
191
- - dle `cron.dataplatform.parkings.generateSmart4CityTaskList`
192
- - názvy rabbitmq front
193
- - dataplatform.parkings.updateSmart4CityMeasurements
183
+ - dataplatform.parkings.updateSmart4CityData
184
+ - vstupem do fronty je json konfigurace viz schema [UpdateSmart4CityDataValidationSchema](../src/integration-engine/workers/schemas/UpdateSmart4CityDataSchema.ts)
185
+ - příklad vstupu `{"type":"measurements"}` spustí pouze aktualizaci měření, dále je možné použít typ `data` to aktualizuje informace o parkovištích a parkovacích místech. Typ `all` aktualizuje jak parkoviště tak i měření
194
186
 
195
187
  #### _parkomats_
196
188
  - zdroj dat
@@ -234,44 +226,20 @@ Vybraným parkovištím může být nahrazena location za Multipolygon ze zdroje
234
226
  - parkingsMeasurementsModel -> (schéma parkings) `parkings_measurements`
235
227
  - přestože přesná data nedostáváme, tak ukládáme do tabulky hodnoty `available_spot_number` stav ve významu jestli je parkoviště volné. Absolutní počet volných míst není znám a je třeba s tím počítat na výstupním API.
236
228
 
237
- #### Task _GenerateSmart4CityTaskListTask_
238
-
239
- - vstupní rabbitmq fronta
240
- - název: `dataplatform.parkings.generateSmart4CityTaskList`
241
- - parametry:
242
- - type: `locations`/`measurements`
243
- - závislé fronty
244
- - název: `dataplatform.parkings.updateSmart4CityLocations` & `dataplatform.parkings.updateSmart4CityMeasurements`
245
- - parametry:
246
- - code: `kod města` napr. `nymburk`
247
- - datové zdroje
248
- - Smart4City - seznam měst (http)
249
-
250
- #### Task _UpdateSmart4CityLocationsTask_
229
+ #### Task _UpdateSmart4CityDataTask_
251
230
 
252
231
  - vstupní rabbitmq fronta
253
- - název: `dataplatform.parkings.updateSmart4CityLocations`
232
+ - název: `dataplatform.parkings.updateSmart4CityData`
254
233
  - parametry:
255
- - code: `kod města` napr. `nymburk`
234
+ - příklad vstupu `{"type":"measurements"}` spustí pouze aktualizaci měření, dále je možné použít typ `data` to aktualizuje informace o parkovištích a parkovacích místech. Typ `all` aktualizuje jak parkoviště tak i měření
256
235
  - datové zdroje
257
- - Smart4City - data měst (http)
236
+ - Smart4City - data měst (GraphQL)
258
237
  - transformace
259
- - [Smart4CityLocationTransformation](../src/integration-engine/transformations/Smart4CityLocationTransformation.ts) - transformace parkovišť, lokací i measurementů (pro každou garáž nálezí vždy jeden business objekt od každého)
238
+ - [Smart4CityParkingTransformation](../src/integration-engine/transformations/smart4city/Smart4CityParkingTransformation.ts)
239
+ - [Smart4CityMeasurementTransformation](../src/integration-engine/transformations/smart4city/Smart4CityParkingMeasurementsTransformation.ts)
260
240
  - data modely
261
241
  - parkingsModel -> (schéma parkings) `parkings`
262
242
  - parkingsLocationModel -> (schéma parkings) `parkings_location`
263
-
264
- #### Task _UpdateSmart4CityMeasurementsTask_
265
-
266
- - vstupní rabbitmq fronta
267
- - název: `dataplatform.parkings.updateSmart4CityMeasurements`
268
- - parametry:
269
- - code: `kod města` napr. `nymburk`
270
- - datové zdroje
271
- - Smart4City - data měst (http)
272
- - transformace
273
- - [Smart4CityMeasurementTransformation](../src/integration-engine/transformations/Smart4CityMeasurementTransformation.ts) - transformace parkovišť, lokací i measurementů (pro každou garáž nálezí vždy jeden business objekt od každého)
274
- - data modely
275
243
  - parkingsMeasurementsModel -> (schéma parkings) `parkings_measurements`
276
244
 
277
245
  #### Task _GenerateIptOictParkingJobsTask_
@@ -299,7 +267,7 @@ Vybraným parkovištím může být nahrazena location za Multipolygon ze zdroje
299
267
  - geojson formát
300
268
  - statická data
301
269
  - transformace
302
- - [IptOictParkingSpaceTransformation](../src/integration-engine/transformations/IptOictParkingSpaceTransformation.ts) - transformace lokací parkovišť
270
+ - [IptOictParkingSpaceTransformation](../src/integration-engine/transformations/IptOictParkingSpaceTransformation.ts) - transformace -lokací parkovišť
303
271
  - [IptOictParkingTransformation](../src/integration-engine/transformations/IptOictParkingTransformation.ts) - transformace parkovišť
304
272
  - [IptOictOpeningHoursTransformation](../src/integration-engine/transformations/iptoict/IptOictOpeningHoursTransformation.ts) - transformace otvíracích dob
305
273
  - data modely
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/parkings",
3
- "version": "1.23.3-dev.2111016379",
3
+ "version": "1.23.3-dev.2129532503",
4
4
  "description": "Golemio Parkings Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -0,0 +1,47 @@
1
+ {
2
+ "5f4f9cf2b8854ffce9fd61b2": {
3
+ "name": "Veřejné",
4
+ "code": "VEREJNE",
5
+ "access": null
6
+ },
7
+ "65f8201eca54680011fcf7c7": {
8
+ "name": "Rezervováno ZTP",
9
+ "code": "ZTP",
10
+ "access": "disabled"
11
+ },
12
+ "65fc0da4ca54680011fd14bb": {
13
+ "name": "Kolín - ČSOB",
14
+ "code": "KOL-ČSOB",
15
+ "access": "designated"
16
+ },
17
+ "65fc1279ca54680011fd14ce": {
18
+ "name": "Kolín - Městský úřad (časově omezené)",
19
+ "code": "KOL-MÚ",
20
+ "access": "designated"
21
+ },
22
+ "65fc133aca54680011fd14e1": {
23
+ "name": "Kolín - Městský úřad (trvale)",
24
+ "code": "KOL-MÚ2",
25
+ "access": "designated"
26
+ },
27
+ "65fc1495ca54680011fd14e2": {
28
+ "name": "Kolín - Dr. Max",
29
+ "code": "KOL-DRMAX",
30
+ "access": "designated"
31
+ },
32
+ "65fc18adca54680011fd14f5": {
33
+ "name": "Kolín - Držitelé AB",
34
+ "code": "KOL-AB",
35
+ "access": "designated"
36
+ },
37
+ "65fc1e1dca54680011fd1522": {
38
+ "name": "Kolín - Vyprodáváme sklady",
39
+ "code": "KOL-V.SKLADY",
40
+ "access": "designated"
41
+ },
42
+ "68d66b43845fed00184bf524": {
43
+ "name": "Elektronabíječky",
44
+ "code": "ELEKTRO",
45
+ "access": "charging"
46
+ }
47
+ }
@@ -1,11 +0,0 @@
1
- import { ISmart4CityList } from "../../../schema-definitions/datasources/interfaces/ISmart4CityList";
2
- import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
3
- import { IDataSource } from "@golemio/core/dist/integration-engine";
4
- import { IDataSourceProvider } from "../interfaces/IDataSourceProvider";
5
- export declare class Smart4CityListDataSourceProvider implements IDataSourceProvider<ISmart4CityList[]> {
6
- private config;
7
- private static DATASOURCE_NAME;
8
- constructor(config: ISimpleConfig);
9
- getDataSource(): IDataSource<ISmart4CityList[]>;
10
- private getProtocolStrategy;
11
- }
@@ -1,45 +0,0 @@
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
- var Smart4CityListDataSourceProvider_1;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.Smart4CityListDataSourceProvider = void 0;
17
- const Smart4CityListJsonSchema_1 = require("../../../schema-definitions/datasources/Smart4CityListJsonSchema");
18
- const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
19
- const integration_engine_1 = require("@golemio/core/dist/integration-engine");
20
- const HTTPFetchProtocolStrategy_1 = require("@golemio/core/dist/integration-engine/datasources/protocol-strategy/HTTPFetchProtocolStrategy");
21
- const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
22
- const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
23
- let Smart4CityListDataSourceProvider = exports.Smart4CityListDataSourceProvider = Smart4CityListDataSourceProvider_1 = class Smart4CityListDataSourceProvider {
24
- constructor(config) {
25
- this.config = config;
26
- }
27
- getDataSource() {
28
- return new integration_engine_1.DataSource(Smart4CityListDataSourceProvider_1.DATASOURCE_NAME, this.getProtocolStrategy(), new integration_engine_1.JSONDataTypeStrategy({ resultsPath: "cities" }), new golemio_validator_1.JSONSchemaValidator(Smart4CityListDataSourceProvider_1.DATASOURCE_NAME, Smart4CityListJsonSchema_1.smart4CityListJsonSchema));
29
- }
30
- getProtocolStrategy() {
31
- const url = new URL(this.config.getValue("old.datasources.parking.Smart4City.ApiBaseUrl"));
32
- return new HTTPFetchProtocolStrategy_1.HTTPFetchProtocolStrategy({
33
- method: "GET",
34
- url: url.toString(),
35
- headers: { "Content-Type": "application/json" },
36
- });
37
- }
38
- };
39
- Smart4CityListDataSourceProvider.DATASOURCE_NAME = "Smart4CityListDataSource";
40
- exports.Smart4CityListDataSourceProvider = Smart4CityListDataSourceProvider = Smart4CityListDataSourceProvider_1 = __decorate([
41
- (0, tsyringe_1.injectable)(),
42
- __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
43
- __metadata("design:paramtypes", [Object])
44
- ], Smart4CityListDataSourceProvider);
45
- //# sourceMappingURL=Smart4CityListDataSourceProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Smart4CityListDataSourceProvider.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/smart4city/Smart4CityListDataSourceProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+GAAqF;AAGrF,wEAAqE;AACrE,8EAAsG;AACtG,6IAA0I;AAC1I,mFAAkF;AAClF,iEAAwE;AAIjE,IAAM,gCAAgC,mFAAtC,MAAM,gCAAgC;IAGzC,YAAoD,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtE,aAAa;QAChB,OAAO,IAAI,+BAAU,CACjB,kCAAgC,CAAC,eAAe,EAChD,IAAI,CAAC,mBAAmB,EAAE,EAC1B,IAAI,yCAAoB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EACnD,IAAI,uCAAmB,CAAC,kCAAgC,CAAC,eAAe,EAAE,mDAAwB,CAAC,CACtG,CAAC;IACN,CAAC;IAEO,mBAAmB;QACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAS,+CAA+C,CAAC,CAAC,CAAC;QAEnG,OAAO,IAAI,qDAAyB,CAAC;YACjC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAClD,CAAC,CAAC;IACP,CAAC;;AArBc,gDAAe,GAAG,0BAA0B,AAA7B,CAA8B;2CADnD,gCAAgC;IAD5C,IAAA,qBAAU,GAAE;IAII,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;;GAHlC,gCAAgC,CAuB5C"}
@@ -1,11 +0,0 @@
1
- import { ISmart4CityLocation } from "../../../schema-definitions/datasources/interfaces/ISmart4CityLocation";
2
- import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
3
- import { IDataSource } from "@golemio/core/dist/integration-engine";
4
- import { IDataSourceProvider } from "../interfaces/IDataSourceProvider";
5
- export declare class Smart4CityLocationDataSourceProvider implements IDataSourceProvider<ISmart4CityLocation[]> {
6
- private config;
7
- private static DATASOURCE_NAME;
8
- constructor(config: ISimpleConfig);
9
- getDataSource(cityCode: string): IDataSource<ISmart4CityLocation[]>;
10
- private getProtocolStrategy;
11
- }
@@ -1,50 +0,0 @@
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
- var __importDefault = (this && this.__importDefault) || function (mod) {
15
- return (mod && mod.__esModule) ? mod : { "default": mod };
16
- };
17
- var Smart4CityLocationDataSourceProvider_1;
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.Smart4CityLocationDataSourceProvider = void 0;
20
- const Smart4CityLocationJsonSchema_1 = require("../../../schema-definitions/datasources/Smart4CityLocationJsonSchema");
21
- const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
22
- const integration_engine_1 = require("@golemio/core/dist/integration-engine");
23
- const HTTPFetchProtocolStrategy_1 = require("@golemio/core/dist/integration-engine/datasources/protocol-strategy/HTTPFetchProtocolStrategy");
24
- const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
25
- const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
26
- const path_1 = __importDefault(require("path"));
27
- let Smart4CityLocationDataSourceProvider = exports.Smart4CityLocationDataSourceProvider = Smart4CityLocationDataSourceProvider_1 = class Smart4CityLocationDataSourceProvider {
28
- constructor(config) {
29
- this.config = config;
30
- }
31
- getDataSource(cityCode) {
32
- return new integration_engine_1.DataSource(Smart4CityLocationDataSourceProvider_1.DATASOURCE_NAME, this.getProtocolStrategy(cityCode), new integration_engine_1.JSONDataTypeStrategy({ resultsPath: "parkinglocations" }), new golemio_validator_1.JSONSchemaValidator(Smart4CityLocationDataSourceProvider_1.DATASOURCE_NAME, Smart4CityLocationJsonSchema_1.smart4CityLocationJsonSchema));
33
- }
34
- getProtocolStrategy(cityCode) {
35
- const url = new URL(this.config.getValue("old.datasources.parking.Smart4City.ApiBaseUrl"));
36
- url.pathname = path_1.default.join(url.pathname, cityCode, "/parkinglocations");
37
- return new HTTPFetchProtocolStrategy_1.HTTPFetchProtocolStrategy({
38
- method: "GET",
39
- url: url.toString(),
40
- headers: { "Content-Type": "application/json" },
41
- });
42
- }
43
- };
44
- Smart4CityLocationDataSourceProvider.DATASOURCE_NAME = "Smart4CityLocationDataSource";
45
- exports.Smart4CityLocationDataSourceProvider = Smart4CityLocationDataSourceProvider = Smart4CityLocationDataSourceProvider_1 = __decorate([
46
- (0, tsyringe_1.injectable)(),
47
- __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
48
- __metadata("design:paramtypes", [Object])
49
- ], Smart4CityLocationDataSourceProvider);
50
- //# sourceMappingURL=Smart4CityLocationDataSourceProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Smart4CityLocationDataSourceProvider.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/smart4city/Smart4CityLocationDataSourceProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,uHAA6F;AAG7F,wEAAqE;AACrE,8EAAsG;AACtG,6IAA0I;AAC1I,mFAAkF;AAClF,iEAAwE;AACxE,gDAAwB;AAIjB,IAAM,oCAAoC,2FAA1C,MAAM,oCAAoC;IAG7C,YAAoD,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtE,aAAa,CAAC,QAAgB;QACjC,OAAO,IAAI,+BAAU,CACjB,sCAAoC,CAAC,eAAe,EACpD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAClC,IAAI,yCAAoB,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,EAC7D,IAAI,uCAAmB,CAAC,sCAAoC,CAAC,eAAe,EAAE,2DAA4B,CAAC,CAC9G,CAAC;IACN,CAAC;IAEO,mBAAmB,CAAC,QAAgB;QACxC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAS,+CAA+C,CAAC,CAAC,CAAC;QACnG,GAAG,CAAC,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAEtE,OAAO,IAAI,qDAAyB,CAAC;YACjC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAClD,CAAC,CAAC;IACP,CAAC;;AAtBc,oDAAe,GAAG,8BAA8B,AAAjC,CAAkC;+CADvD,oCAAoC;IADhD,IAAA,qBAAU,GAAE;IAII,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;;GAHlC,oCAAoC,CAwBhD"}
@@ -1,10 +0,0 @@
1
- import { IParkingProviderDataSourceFactory } from "../interfaces/IParkingProviderDataSourceFactory";
2
- import { ISmart4CityList } from "../../../schema-definitions/datasources/interfaces/ISmart4CityList";
3
- export declare class SmartCityListDatasourceCache {
4
- private dataSourceFactory;
5
- private data;
6
- private dataSource;
7
- private readonly updatedAt;
8
- constructor(dataSourceFactory: IParkingProviderDataSourceFactory);
9
- getAll(): Promise<Pick<ISmart4CityList, "code">[]>;
10
- }
@@ -1,41 +0,0 @@
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.SmartCityListDatasourceCache = void 0;
16
- const ParkingProviderEnum_1 = require("../helpers/ParkingProviderEnum");
17
- const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
18
- const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
19
- const TWELVE_HOURS = 12 * 60 * 60 * 1000;
20
- let SmartCityListDatasourceCache = exports.SmartCityListDatasourceCache = class SmartCityListDatasourceCache {
21
- constructor(dataSourceFactory) {
22
- this.dataSourceFactory = dataSourceFactory;
23
- this.dataSource = this.dataSourceFactory.getDataSource(ParkingProviderEnum_1.ParkingProvider.Smart4CityList);
24
- this.data = [];
25
- this.updatedAt = new Date().getTime();
26
- }
27
- async getAll() {
28
- const now = Date.now();
29
- if (!this.data.length || this.updatedAt + TWELVE_HOURS < now) {
30
- const response = await this.dataSource.getAll();
31
- this.data = response.map((el) => ({ code: el.code }));
32
- }
33
- return this.data;
34
- }
35
- };
36
- exports.SmartCityListDatasourceCache = SmartCityListDatasourceCache = __decorate([
37
- (0, tsyringe_1.injectable)(),
38
- __param(0, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ParkingProviderDataSourceFactory)),
39
- __metadata("design:paramtypes", [Object])
40
- ], SmartCityListDatasourceCache);
41
- //# sourceMappingURL=SmartCityListDatasourceCache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SmartCityListDatasourceCache.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/smart4city/SmartCityListDatasourceCache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wEAA8E;AAK9E,yEAAoE;AAEpE,iEAAwE;AAExE,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAGlC,IAAM,4BAA4B,0CAAlC,MAAM,4BAA4B;IAKrC,YAEY,iBAAoD;QAApD,sBAAiB,GAAjB,iBAAiB,CAAmC;QAE5D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,qCAAe,CAAC,cAAc,CAAC,CAAC;QACvF,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1C,CAAC;IAEM,KAAK,CAAC,MAAM;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,GAAG,YAAY,GAAG,GAAG,EAAE;YAC1D,MAAM,QAAQ,GAAsB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACnE,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SACzD;QAED,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CACJ,CAAA;uCAvBY,4BAA4B;IADxC,IAAA,qBAAU,GAAE;IAOJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,gCAAgC,CAAC,CAAA;;GANzD,4BAA4B,CAuBxC"}
@@ -1,10 +0,0 @@
1
- import { IParkingMeasurements } from "../ParkingInterface";
2
- import { ISmart4CityLocation } from "../../schema-definitions/datasources/interfaces/ISmart4CityLocation";
3
- import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
4
- export declare class Smart4CityMeasurementTransformation extends AbstractTransformation<ISmart4CityLocation, IParkingMeasurements> {
5
- private transformationDate;
6
- name: string;
7
- constructor(transformationDate: Date);
8
- protected transformInternal: (data: ISmart4CityLocation) => IParkingMeasurements;
9
- transformArray: (data: ISmart4CityLocation[]) => IParkingMeasurements[];
10
- }
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Smart4CityMeasurementTransformation = void 0;
4
- const SourceEnum_1 = require("../../helpers/constants/SourceEnum");
5
- const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
6
- class Smart4CityMeasurementTransformation extends AbstractTransformation_1.AbstractTransformation {
7
- constructor(transformationDate) {
8
- super();
9
- this.transformationDate = transformationDate;
10
- this.name = "Smart4CityLocationTransformation";
11
- this.transformInternal = (data) => {
12
- return {
13
- source: SourceEnum_1.SourceEnum.Smart4City,
14
- source_id: data.id.toString(),
15
- parking_id: `${SourceEnum_1.SourceEnum.Smart4City}-${data.id}`,
16
- total_spot_number: data.capacity,
17
- available_spot_number: data.correctionunoccupied,
18
- occupied_spot_number: Number.isInteger(data.capacity) && Number.isInteger(data.correctionunoccupied)
19
- ? data.capacity - data.correctionunoccupied
20
- : null,
21
- date_modified: this.transformationDate.toISOString(),
22
- };
23
- };
24
- this.transformArray = (data) => {
25
- const result = [];
26
- for (const el of data) {
27
- if (!el.closed && el.capacity && el.correctionunoccupied !== null) {
28
- result.push(this.transformElement(el));
29
- }
30
- }
31
- return result;
32
- };
33
- }
34
- }
35
- exports.Smart4CityMeasurementTransformation = Smart4CityMeasurementTransformation;
36
- //# sourceMappingURL=Smart4CityMeasurementTransformation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Smart4CityMeasurementTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/Smart4CityMeasurementTransformation.ts"],"names":[],"mappings":";;;AAAA,mEAA2D;AAG3D,6GAA0G;AAE1G,MAAa,mCAAoC,SAAQ,+CAAiE;IAGtH,YAAoB,kBAAwB;QACxC,KAAK,EAAE,CAAC;QADQ,uBAAkB,GAAlB,kBAAkB,CAAM;QAFrC,SAAI,GAAG,kCAAkC,CAAC;QAMvC,sBAAiB,GAAG,CAAC,IAAyB,EAAwB,EAAE;YAC9E,OAAO;gBACH,MAAM,EAAE,uBAAU,CAAC,UAAU;gBAC7B,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;gBAC7B,UAAU,EAAE,GAAG,uBAAU,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE;gBACjD,iBAAiB,EAAE,IAAI,CAAC,QAAQ;gBAChC,qBAAqB,EAAE,IAAI,CAAC,oBAAoB;gBAChD,oBAAoB,EAChB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC;oBAC1E,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAqB;oBAC5C,CAAC,CAAC,IAAI;gBACd,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;aACvD,CAAC;QACN,CAAC,CAAC;QAEK,mBAAc,GAAG,CAAC,IAA2B,EAA0B,EAAE;YAC5E,MAAM,MAAM,GAA2B,EAAE,CAAC;YAE1C,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE;gBACnB,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,oBAAoB,KAAK,IAAI,EAAE;oBAC/D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC1C;aACJ;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;IA1BF,CAAC;CA2BJ;AAhCD,kFAgCC"}
@@ -1,6 +0,0 @@
1
- export interface ISmart4CityTaskTypeInput {
2
- type: string;
3
- }
4
- export declare class Smart4CityTaskTypeValidationSchema implements ISmart4CityTaskTypeInput {
5
- type: string;
6
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"Smart4CityTaskTypeSchema.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/schemas/Smart4CityTaskTypeSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+EAAmE;AAMnE,MAAa,kCAAkC;CAG9C;AAHD,gFAGC;AADG;IADC,IAAA,wBAAM,EAAC,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;;gEACxB"}
@@ -1,6 +0,0 @@
1
- export interface IUpdateSmart4CityInput {
2
- code: string;
3
- }
4
- export declare class UpdateSmart4CityValidationSchema implements IUpdateSmart4CityInput {
5
- code: string;
6
- }
@@ -1,21 +0,0 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.UpdateSmart4CityValidationSchema = void 0;
13
- const class_validator_1 = require("@golemio/core/dist/shared/class-validator");
14
- class UpdateSmart4CityValidationSchema {
15
- }
16
- exports.UpdateSmart4CityValidationSchema = UpdateSmart4CityValidationSchema;
17
- __decorate([
18
- (0, class_validator_1.IsString)(),
19
- __metadata("design:type", String)
20
- ], UpdateSmart4CityValidationSchema.prototype, "code", void 0);
21
- //# sourceMappingURL=UpdateSmart4CitySchema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UpdateSmart4CitySchema.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/schemas/UpdateSmart4CitySchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+EAAqE;AAMrE,MAAa,gCAAgC;CAG5C;AAHD,4EAGC;AADG;IADC,IAAA,0BAAQ,GAAE;;8DACG"}
@@ -1,16 +0,0 @@
1
- import { SmartCityListDatasourceCache } from "../../datasources/smart4city/SmartCityListDatasourceCache";
2
- import { ISmart4CityTaskTypeInput, Smart4CityTaskTypeValidationSchema } from "../schemas/Smart4CityTaskTypeSchema";
3
- import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
4
- import { AbstractTask } from "@golemio/core/dist/integration-engine";
5
- export declare enum Smart4CityTaskType {
6
- measurements = "measurements"
7
- }
8
- export declare class GenerateSmart4CityTaskListTask extends AbstractTask<ISmart4CityTaskTypeInput> {
9
- private config;
10
- private dataSource;
11
- readonly queueName = "generateSmart4CityTaskList";
12
- readonly queueTtl: number;
13
- readonly schema: typeof Smart4CityTaskTypeValidationSchema;
14
- constructor(config: ISimpleConfig, dataSource: SmartCityListDatasourceCache);
15
- execute(data: ISmart4CityTaskTypeInput): Promise<void>;
16
- }
@@ -1,60 +0,0 @@
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.GenerateSmart4CityTaskListTask = exports.Smart4CityTaskType = void 0;
16
- const SmartCityListDatasourceCache_1 = require("../../datasources/smart4city/SmartCityListDatasourceCache");
17
- const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
18
- const constants_1 = require("../constants");
19
- const Smart4CityTaskTypeSchema_1 = require("../schemas/Smart4CityTaskTypeSchema");
20
- const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
21
- const integration_engine_1 = require("@golemio/core/dist/integration-engine");
22
- const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
23
- const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
24
- var Smart4CityTaskType;
25
- (function (Smart4CityTaskType) {
26
- Smart4CityTaskType["measurements"] = "measurements";
27
- })(Smart4CityTaskType || (exports.Smart4CityTaskType = Smart4CityTaskType = {}));
28
- let GenerateSmart4CityTaskListTask = exports.GenerateSmart4CityTaskListTask = class GenerateSmart4CityTaskListTask extends integration_engine_1.AbstractTask {
29
- constructor(config, dataSource) {
30
- super(constants_1.NEW_PARKINGS_WORKER_NAME);
31
- this.config = config;
32
- this.dataSource = dataSource;
33
- this.queueName = "generateSmart4CityTaskList";
34
- this.queueTtl = 3 * 60 * 60 * 1000; // 3h
35
- this.schema = Smart4CityTaskTypeSchema_1.Smart4CityTaskTypeValidationSchema;
36
- }
37
- async execute(data) {
38
- let sourceDataCityList = [];
39
- try {
40
- sourceDataCityList = await this.dataSource.getAll();
41
- }
42
- catch (err) {
43
- if (err instanceof golemio_errors_1.AbstractGolemioError) {
44
- throw err;
45
- }
46
- throw new golemio_errors_1.DatasourceError("Error while fetching Smart4City list", this.constructor.name, err);
47
- }
48
- const exchange = this.config.getValue("env.RABBIT_EXCHANGE_NAME");
49
- for (const city of sourceDataCityList) {
50
- await integration_engine_1.QueueManager.sendMessageToExchange(exchange + "." + constants_1.NEW_PARKINGS_WORKER_NAME.toLowerCase(), "updateSmart4CityMeasurements", { code: city.code });
51
- }
52
- }
53
- };
54
- exports.GenerateSmart4CityTaskListTask = GenerateSmart4CityTaskListTask = __decorate([
55
- (0, tsyringe_1.injectable)(),
56
- __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
57
- __param(1, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.SmartCityListDatasourceCache)),
58
- __metadata("design:paramtypes", [Object, SmartCityListDatasourceCache_1.SmartCityListDatasourceCache])
59
- ], GenerateSmart4CityTaskListTask);
60
- //# sourceMappingURL=GenerateSmart4CityTaskListTask.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GenerateSmart4CityTaskListTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/GenerateSmart4CityTaskListTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4GAAuG;AACvG,yEAAoE;AACpE,4CAAiE;AACjE,kFAA4H;AAG5H,wEAAqE;AACrE,8EAAmF;AACnF,6EAAiG;AACjG,iEAAwE;AAExE,IAAY,kBAEX;AAFD,WAAY,kBAAkB;IAC1B,mDAA6B,CAAA;AACjC,CAAC,EAFW,kBAAkB,kCAAlB,kBAAkB,QAE7B;AAGM,IAAM,8BAA8B,4CAApC,MAAM,8BAA+B,SAAQ,iCAAsC;IAKtF,YACoC,MAA6B,EAE7D,UAAgD;QAEhD,KAAK,CAAC,oCAAwB,CAAC,CAAC;QAJQ,WAAM,GAAN,MAAM,CAAe;QAErD,eAAU,GAAV,UAAU,CAA8B;QAPpC,cAAS,GAAG,4BAA4B,CAAC;QACzC,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK;QACpC,WAAM,GAAG,6DAAkC,CAAC;IAQ5D,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,IAA8B;QAC/C,IAAI,kBAAkB,GAAyC,EAAE,CAAC;QAElE,IAAI;YACA,kBAAkB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;SACvD;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,GAAG,YAAY,qCAAoB,EAAE;gBACrC,MAAM,GAAG,CAAC;aACb;YAED,MAAM,IAAI,gCAAe,CAAC,sCAAsC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACjG;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAS,0BAA0B,CAAC,CAAC;QAE1E,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE;YACnC,MAAM,iCAAY,CAAC,qBAAqB,CACpC,QAAQ,GAAG,GAAG,GAAG,oCAAwB,CAAC,WAAW,EAAE,EACvD,8BAA8B,EAC9B,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CACtB,CAAC;SACL;IACL,CAAC;CACJ,CAAA;yCApCY,8BAA8B;IAD1C,IAAA,qBAAU,GAAE;IAOJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;IAC9B,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,4BAA4B,CAAC,CAAA;6CACtC,2DAA4B;GAR3C,8BAA8B,CAoC1C"}
@@ -1,12 +0,0 @@
1
- import { IParkingProviderDataSourceFactory } from "../../datasources/interfaces/IParkingProviderDataSourceFactory";
2
- import { IUpdateSmart4CityInput, UpdateSmart4CityValidationSchema } from "../schemas/UpdateSmart4CitySchema";
3
- import { AbstractTask } from "@golemio/core/dist/integration-engine";
4
- export declare class UpdateSmart4CityMeasurementsTask extends AbstractTask<IUpdateSmart4CityInput> {
5
- private dataSourceFactory;
6
- readonly queueName = "updateSmart4CityMeasurements";
7
- readonly queueTtl: number;
8
- readonly schema: typeof UpdateSmart4CityValidationSchema;
9
- private measurementsRepository;
10
- constructor(dataSourceFactory: IParkingProviderDataSourceFactory);
11
- execute(data: IUpdateSmart4CityInput): Promise<void>;
12
- }