@golemio/parkings 1.7.5-dev.1130337163 → 1.7.5-dev.1130865810

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 (67) hide show
  1. package/db/migrations/postgresql/20240107151449-smart4city.js +53 -0
  2. package/db/migrations/postgresql/sqls/20240107151449-smart4city-down.sql +1 -0
  3. package/db/migrations/postgresql/sqls/20240107151449-smart4city-up.sql +8 -0
  4. package/dist/integration-engine/ParkingInterface.d.ts +3 -3
  5. package/dist/integration-engine/datasources/ParkingProviderDataSourceFactory.d.ts +3 -1
  6. package/dist/integration-engine/datasources/ParkingProviderDataSourceFactory.js +6 -2
  7. package/dist/integration-engine/datasources/ParkingProviderDataSourceFactory.js.map +1 -1
  8. package/dist/integration-engine/datasources/helpers/ParkingProviderEnum.d.ts +3 -1
  9. package/dist/integration-engine/datasources/helpers/ParkingProviderEnum.js +2 -0
  10. package/dist/integration-engine/datasources/helpers/ParkingProviderEnum.js.map +1 -1
  11. package/dist/integration-engine/datasources/interfaces/IParkingProviderDataSourceFactory.d.ts +4 -0
  12. package/dist/integration-engine/datasources/interfaces/IParkingProviderDataSourceFactory.js.map +1 -1
  13. package/dist/integration-engine/datasources/smart4city/Smart4CityListDataSourceProvider.d.ts +11 -0
  14. package/dist/integration-engine/datasources/smart4city/Smart4CityListDataSourceProvider.js +44 -0
  15. package/dist/integration-engine/datasources/smart4city/Smart4CityListDataSourceProvider.js.map +1 -0
  16. package/dist/integration-engine/datasources/smart4city/Smart4CityLocationDataSourceProvider.d.ts +11 -0
  17. package/dist/integration-engine/datasources/smart4city/Smart4CityLocationDataSourceProvider.js +49 -0
  18. package/dist/integration-engine/datasources/smart4city/Smart4CityLocationDataSourceProvider.js.map +1 -0
  19. package/dist/integration-engine/datasources/smart4city/SmartCityListDatasourceCache.d.ts +10 -0
  20. package/dist/integration-engine/datasources/smart4city/SmartCityListDatasourceCache.js +52 -0
  21. package/dist/integration-engine/datasources/smart4city/SmartCityListDatasourceCache.js.map +1 -0
  22. package/dist/integration-engine/ioc/Di.js +12 -0
  23. package/dist/integration-engine/ioc/Di.js.map +1 -1
  24. package/dist/integration-engine/ioc/ModuleContainerToken.d.ts +6 -0
  25. package/dist/integration-engine/ioc/ModuleContainerToken.js +8 -0
  26. package/dist/integration-engine/ioc/ModuleContainerToken.js.map +1 -1
  27. package/dist/integration-engine/transformations/Smart4CityLocationTransformation.d.ts +20 -0
  28. package/dist/integration-engine/transformations/Smart4CityLocationTransformation.js +80 -0
  29. package/dist/integration-engine/transformations/Smart4CityLocationTransformation.js.map +1 -0
  30. package/dist/integration-engine/transformations/Smart4CityMeasurementTransformation.d.ts +10 -0
  31. package/dist/integration-engine/transformations/Smart4CityMeasurementTransformation.js +35 -0
  32. package/dist/integration-engine/transformations/Smart4CityMeasurementTransformation.js.map +1 -0
  33. package/dist/integration-engine/workers/NewParkingsWorker.d.ts +1 -1
  34. package/dist/integration-engine/workers/NewParkingsWorker.js +3 -0
  35. package/dist/integration-engine/workers/NewParkingsWorker.js.map +1 -1
  36. package/dist/integration-engine/workers/schemas/Smart4CityTaskTypeSchema.d.ts +6 -0
  37. package/dist/integration-engine/workers/schemas/Smart4CityTaskTypeSchema.js +21 -0
  38. package/dist/integration-engine/workers/schemas/Smart4CityTaskTypeSchema.js.map +1 -0
  39. package/dist/integration-engine/workers/schemas/UpdateSmart4CitySchema.d.ts +6 -0
  40. package/dist/integration-engine/workers/schemas/UpdateSmart4CitySchema.js +21 -0
  41. package/dist/integration-engine/workers/schemas/UpdateSmart4CitySchema.js.map +1 -0
  42. package/dist/integration-engine/workers/tasks/GenerateSmart4CityTaskListTask.d.ts +17 -0
  43. package/dist/integration-engine/workers/tasks/GenerateSmart4CityTaskListTask.js +72 -0
  44. package/dist/integration-engine/workers/tasks/GenerateSmart4CityTaskListTask.js.map +1 -0
  45. package/dist/integration-engine/workers/tasks/UpdateSmart4CityLocationsTask.d.ts +19 -0
  46. package/dist/integration-engine/workers/tasks/UpdateSmart4CityLocationsTask.js +114 -0
  47. package/dist/integration-engine/workers/tasks/UpdateSmart4CityLocationsTask.js.map +1 -0
  48. package/dist/integration-engine/workers/tasks/UpdateSmart4CityMeasurementsTask.d.ts +12 -0
  49. package/dist/integration-engine/workers/tasks/UpdateSmart4CityMeasurementsTask.js +90 -0
  50. package/dist/integration-engine/workers/tasks/UpdateSmart4CityMeasurementsTask.js.map +1 -0
  51. package/dist/schema-definitions/datasources/ParkingMeasurementsDtoSchema.js +2 -2
  52. package/dist/schema-definitions/datasources/ParkingMeasurementsDtoSchema.js.map +1 -1
  53. package/dist/schema-definitions/datasources/Smart4CityListJsonSchema.d.ts +3 -0
  54. package/dist/schema-definitions/datasources/Smart4CityListJsonSchema.js +20 -0
  55. package/dist/schema-definitions/datasources/Smart4CityListJsonSchema.js.map +1 -0
  56. package/dist/schema-definitions/datasources/Smart4CityLocationJsonSchema.d.ts +3 -0
  57. package/dist/schema-definitions/datasources/Smart4CityLocationJsonSchema.js +22 -0
  58. package/dist/schema-definitions/datasources/Smart4CityLocationJsonSchema.js.map +1 -0
  59. package/dist/schema-definitions/datasources/interfaces/IParkingsMeasurementDto.d.ts +2 -2
  60. package/dist/schema-definitions/datasources/interfaces/ISmart4CityList.d.ts +8 -0
  61. package/dist/schema-definitions/datasources/interfaces/ISmart4CityList.js +3 -0
  62. package/dist/schema-definitions/datasources/interfaces/ISmart4CityList.js.map +1 -0
  63. package/dist/schema-definitions/datasources/interfaces/ISmart4CityLocation.d.ts +10 -0
  64. package/dist/schema-definitions/datasources/interfaces/ISmart4CityLocation.js +3 -0
  65. package/dist/schema-definitions/datasources/interfaces/ISmart4CityLocation.js.map +1 -0
  66. package/docs/implementation-documentation.md +73 -1
  67. package/package.json +1 -1
@@ -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', '20240107151449-smart4city-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', '20240107151449-smart4city-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 @@
1
+ delete from parking_sources where source = 'smart4city';
@@ -0,0 +1,8 @@
1
+ insert into parking_sources(source, open_data, api_v3_allowed, legacy_api_allowed, payment_url, contact) VALUES
2
+ ('smart4city', false, true, false, null,
3
+ '{
4
+ "email": "info@smart4city.cz",
5
+ "phone": "+420 602 467 614",
6
+ "web_url": "https://www.smart4city.cz/",
7
+ "term_of_use_url": ""
8
+ }');
@@ -18,7 +18,7 @@ export interface IParking {
18
18
  tariff_id?: string;
19
19
  valid_from?: string;
20
20
  valid_to?: string;
21
- parking_type: string;
21
+ parking_type: string | null;
22
22
  zone_type?: string | null;
23
23
  centroid?: IGeoCoordinatesPoint;
24
24
  }
@@ -37,9 +37,9 @@ export interface IParkingMeasurements {
37
37
  source: string;
38
38
  source_id: string;
39
39
  parking_id: string;
40
- available_spot_number: number;
40
+ available_spot_number: number | null;
41
41
  closed_spot_number?: number;
42
- occupied_spot_number: number;
42
+ occupied_spot_number: number | null;
43
43
  total_spot_number: number | null;
44
44
  date_modified: string;
45
45
  }
@@ -1,9 +1,11 @@
1
1
  import { IMrParkitGarageWithTariff } from "../../schema-definitions/datasources/interfaces/IMrParkitGarage";
2
+ import { ISmart4CityLocation } from "../../schema-definitions/datasources/interfaces/ISmart4CityLocation";
2
3
  import { ParkingProvider } from "./helpers/ParkingProviderEnum";
3
4
  import { IDataSourceProvider } from "./interfaces/IDataSourceProvider";
4
5
  import { DataSourceProviderDict, DataSourceReturnType, IParkingProviderDataSourceFactory } from "./interfaces/IParkingProviderDataSourceFactory";
6
+ import { ISmart4CityList } from "../../schema-definitions/datasources/interfaces/ISmart4CityList";
5
7
  export declare class ParkingProviderDataSourceFactory implements IParkingProviderDataSourceFactory {
6
8
  private readonly dataSourceProviderDict;
7
- constructor(mrParkitDataSourceProvider: IDataSourceProvider<IMrParkitGarageWithTariff[]>);
9
+ constructor(mrParkitDataSourceProvider: IDataSourceProvider<IMrParkitGarageWithTariff[]>, smart4CityListDataSourceProvider: IDataSourceProvider<ISmart4CityList[]>, smart4CityLocationDataSourceProvider: IDataSourceProvider<ISmart4CityLocation[]>);
8
10
  getDataSource<T extends ParkingProvider>(presetLogsProvider: T, ...params: Parameters<DataSourceProviderDict[T]["getDataSource"]>): DataSourceReturnType<T>;
9
11
  }
@@ -17,9 +17,11 @@ const ModuleContainerToken_1 = require("../ioc/ModuleContainerToken");
17
17
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
18
18
  const ParkingProviderEnum_1 = require("./helpers/ParkingProviderEnum");
19
19
  let ParkingProviderDataSourceFactory = exports.ParkingProviderDataSourceFactory = class ParkingProviderDataSourceFactory {
20
- constructor(mrParkitDataSourceProvider) {
20
+ constructor(mrParkitDataSourceProvider, smart4CityListDataSourceProvider, smart4CityLocationDataSourceProvider) {
21
21
  this.dataSourceProviderDict = {
22
22
  [ParkingProviderEnum_1.ParkingProvider.MrParkit]: mrParkitDataSourceProvider,
23
+ [ParkingProviderEnum_1.ParkingProvider.Smart4CityList]: smart4CityListDataSourceProvider,
24
+ [ParkingProviderEnum_1.ParkingProvider.Smart4CityLocation]: smart4CityLocationDataSourceProvider,
23
25
  };
24
26
  }
25
27
  getDataSource(presetLogsProvider, ...params) {
@@ -29,6 +31,8 @@ let ParkingProviderDataSourceFactory = exports.ParkingProviderDataSourceFactory
29
31
  exports.ParkingProviderDataSourceFactory = ParkingProviderDataSourceFactory = __decorate([
30
32
  (0, tsyringe_1.injectable)(),
31
33
  __param(0, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.MrParkitDataSourceProvider)),
32
- __metadata("design:paramtypes", [Object])
34
+ __param(1, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.Smart4CityListDataSourceProvider)),
35
+ __param(2, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.Smart4CityLocationDataSourceProvider)),
36
+ __metadata("design:paramtypes", [Object, Object, Object])
33
37
  ], ParkingProviderDataSourceFactory);
34
38
  //# sourceMappingURL=ParkingProviderDataSourceFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParkingProviderDataSourceFactory.js","sourceRoot":"","sources":["../../../src/integration-engine/datasources/ParkingProviderDataSourceFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sEAAoE;AAEpE,iEAAwE;AACxE,uEAAgE;AASzD,IAAM,gCAAgC,8CAAtC,MAAM,gCAAgC;IAGzC,YAEI,0BAA4E;QAE5E,IAAI,CAAC,sBAAsB,GAAG;YAC1B,CAAC,qCAAe,CAAC,QAAQ,CAAC,EAAE,0BAA0B;SACzD,CAAC;IACN,CAAC;IAEM,aAAa,CAChB,kBAAqB,EACrB,GAAG,MAA8D;QAEjE,OAAO,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC,aAAa,CAAC,GAAG,MAAM,CAA4B,CAAC;IAC/G,CAAC;CACJ,CAAA;2CAlBY,gCAAgC;IAD5C,IAAA,qBAAU,GAAE;IAKJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,0BAA0B,CAAC,CAAA;;GAJnD,gCAAgC,CAkB5C"}
1
+ {"version":3,"file":"ParkingProviderDataSourceFactory.js","sourceRoot":"","sources":["../../../src/integration-engine/datasources/ParkingProviderDataSourceFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sEAAoE;AAGpE,iEAAwE;AACxE,uEAAgE;AAUzD,IAAM,gCAAgC,8CAAtC,MAAM,gCAAgC;IAGzC,YAEI,0BAA4E,EAE5E,gCAAwE,EAExE,oCAAgF;QAEhF,IAAI,CAAC,sBAAsB,GAAG;YAC1B,CAAC,qCAAe,CAAC,QAAQ,CAAC,EAAE,0BAA0B;YACtD,CAAC,qCAAe,CAAC,cAAc,CAAC,EAAE,gCAAgC;YAClE,CAAC,qCAAe,CAAC,kBAAkB,CAAC,EAAE,oCAAoC;SAC7E,CAAC;IACN,CAAC;IAEM,aAAa,CAChB,kBAAqB,EACrB,GAAG,MAA8D;QAEjE,OAAO,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC,aAAa,CAAC,GAAG,MAAM,CAA4B,CAAC;IAC/G,CAAC;CACJ,CAAA;2CAxBY,gCAAgC;IAD5C,IAAA,qBAAU,GAAE;IAKJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,0BAA0B,CAAC,CAAA;IAEvD,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,gCAAgC,CAAC,CAAA;IAE7D,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,oCAAoC,CAAC,CAAA;;GAR7D,gCAAgC,CAwB5C"}
@@ -1,3 +1,5 @@
1
1
  export declare enum ParkingProvider {
2
- MrParkit = "MrParkit"
2
+ MrParkit = "MrParkit",
3
+ Smart4CityList = "Smart4CityList",
4
+ Smart4CityLocation = "Smart4CityLocation"
3
5
  }
@@ -4,5 +4,7 @@ exports.ParkingProvider = void 0;
4
4
  var ParkingProvider;
5
5
  (function (ParkingProvider) {
6
6
  ParkingProvider["MrParkit"] = "MrParkit";
7
+ ParkingProvider["Smart4CityList"] = "Smart4CityList";
8
+ ParkingProvider["Smart4CityLocation"] = "Smart4CityLocation";
7
9
  })(ParkingProvider || (exports.ParkingProvider = ParkingProvider = {}));
8
10
  //# sourceMappingURL=ParkingProviderEnum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParkingProviderEnum.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/helpers/ParkingProviderEnum.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAEX;AAFD,WAAY,eAAe;IACvB,wCAAqB,CAAA;AACzB,CAAC,EAFW,eAAe,+BAAf,eAAe,QAE1B"}
1
+ {"version":3,"file":"ParkingProviderEnum.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/helpers/ParkingProviderEnum.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAIX;AAJD,WAAY,eAAe;IACvB,wCAAqB,CAAA;IACrB,oDAAiC,CAAA;IACjC,4DAAyC,CAAA;AAC7C,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B"}
@@ -1,8 +1,12 @@
1
1
  import { IMrParkitGarageWithTariff } from "../../../schema-definitions/datasources/interfaces/IMrParkitGarage";
2
+ import { ISmart4CityLocation } from "../../../schema-definitions/datasources/interfaces/ISmart4CityLocation";
2
3
  import { ParkingProvider } from "../helpers/ParkingProviderEnum";
3
4
  import { IDataSourceProvider } from "./IDataSourceProvider";
5
+ import { ISmart4CityList } from "../../../schema-definitions/datasources/interfaces/ISmart4CityList";
4
6
  export type DataSourceProviderDict = {
5
7
  [ParkingProvider.MrParkit]: IDataSourceProvider<IMrParkitGarageWithTariff[]>;
8
+ [ParkingProvider.Smart4CityList]: IDataSourceProvider<ISmart4CityList[]>;
9
+ [ParkingProvider.Smart4CityLocation]: IDataSourceProvider<ISmart4CityLocation[]>;
6
10
  };
7
11
  export type DataSourceReturnType<T extends ParkingProvider> = ReturnType<DataSourceProviderDict[T]["getDataSource"]>;
8
12
  export interface IParkingProviderDataSourceFactory {
@@ -1 +1 @@
1
- {"version":3,"file":"IParkingProviderDataSourceFactory.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/interfaces/IParkingProviderDataSourceFactory.ts"],"names":[],"mappings":";;AACA,wEAAiE"}
1
+ {"version":3,"file":"IParkingProviderDataSourceFactory.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/interfaces/IParkingProviderDataSourceFactory.ts"],"names":[],"mappings":";;AAEA,wEAAiE"}
@@ -0,0 +1,11 @@
1
+ import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
2
+ import { IDataSource } from "@golemio/core/dist/integration-engine";
3
+ import { IDataSourceProvider } from "../interfaces/IDataSourceProvider";
4
+ import { ISmart4CityList } from "../../../schema-definitions/datasources/interfaces/ISmart4CityList";
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
+ }
@@ -0,0 +1,44 @@
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 CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
18
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
19
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
20
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
21
+ const Smart4CityListJsonSchema_1 = require("../../../schema-definitions/datasources/Smart4CityListJsonSchema");
22
+ let Smart4CityListDataSourceProvider = exports.Smart4CityListDataSourceProvider = Smart4CityListDataSourceProvider_1 = class Smart4CityListDataSourceProvider {
23
+ constructor(config) {
24
+ this.config = config;
25
+ }
26
+ getDataSource() {
27
+ 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));
28
+ }
29
+ getProtocolStrategy() {
30
+ const url = new URL(this.config.getValue("old.datasources.parking.Smart4City.ApiBaseUrl"));
31
+ return new integration_engine_1.HTTPProtocolStrategy({
32
+ method: "GET",
33
+ url: url.toString(),
34
+ headers: { "Content-Type": "application/json" },
35
+ });
36
+ }
37
+ };
38
+ Smart4CityListDataSourceProvider.DATASOURCE_NAME = "Smart4CityListDataSource";
39
+ exports.Smart4CityListDataSourceProvider = Smart4CityListDataSourceProvider = Smart4CityListDataSourceProvider_1 = __decorate([
40
+ (0, tsyringe_1.injectable)(),
41
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
42
+ __metadata("design:paramtypes", [Object])
43
+ ], Smart4CityListDataSourceProvider);
44
+ //# sourceMappingURL=Smart4CityListDataSourceProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Smart4CityListDataSourceProvider.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/smart4city/Smart4CityListDataSourceProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,wEAAqE;AACrE,8EAA4H;AAC5H,mFAAkF;AAClF,iEAAwE;AAExE,+GAAqF;AAI9E,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,yCAAoB,CAAC;YAC5B,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"}
@@ -0,0 +1,11 @@
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
+ }
@@ -0,0 +1,49 @@
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 golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
24
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
25
+ const path_1 = __importDefault(require("path"));
26
+ let Smart4CityLocationDataSourceProvider = exports.Smart4CityLocationDataSourceProvider = Smart4CityLocationDataSourceProvider_1 = class Smart4CityLocationDataSourceProvider {
27
+ constructor(config) {
28
+ this.config = config;
29
+ }
30
+ getDataSource(cityCode) {
31
+ 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));
32
+ }
33
+ getProtocolStrategy(cityCode) {
34
+ const url = new URL(this.config.getValue("old.datasources.parking.Smart4City.ApiBaseUrl"));
35
+ url.pathname = path_1.default.join(url.pathname, cityCode, "/parkinglocations");
36
+ return new integration_engine_1.HTTPProtocolStrategy({
37
+ method: "GET",
38
+ url: url.toString(),
39
+ headers: { "Content-Type": "application/json" },
40
+ });
41
+ }
42
+ };
43
+ Smart4CityLocationDataSourceProvider.DATASOURCE_NAME = "Smart4CityLocationDataSource";
44
+ exports.Smart4CityLocationDataSourceProvider = Smart4CityLocationDataSourceProvider = Smart4CityLocationDataSourceProvider_1 = __decorate([
45
+ (0, tsyringe_1.injectable)(),
46
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
47
+ __metadata("design:paramtypes", [Object])
48
+ ], Smart4CityLocationDataSourceProvider);
49
+ //# sourceMappingURL=Smart4CityLocationDataSourceProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Smart4CityLocationDataSourceProvider.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/smart4city/Smart4CityLocationDataSourceProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AACA,uHAA6F;AAE7F,wEAAqE;AACrE,8EAA4H;AAC5H,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,yCAAoB,CAAC;YAC5B,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"}
@@ -0,0 +1,10 @@
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
+ }
@@ -0,0 +1,52 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.SmartCityListDatasourceCache = void 0;
25
+ const ParkingProviderEnum_1 = require("../helpers/ParkingProviderEnum");
26
+ const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
27
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
28
+ const TWELVE_HOURS = 12 * 60 * 60 * 1000;
29
+ let SmartCityListDatasourceCache = exports.SmartCityListDatasourceCache = class SmartCityListDatasourceCache {
30
+ constructor(dataSourceFactory) {
31
+ this.dataSourceFactory = dataSourceFactory;
32
+ this.dataSource = this.dataSourceFactory.getDataSource(ParkingProviderEnum_1.ParkingProvider.Smart4CityList);
33
+ this.data = [];
34
+ this.updatedAt = new Date().getTime();
35
+ }
36
+ getAll() {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ const now = Date.now();
39
+ if (!this.data.length || this.updatedAt + TWELVE_HOURS < now) {
40
+ const response = yield this.dataSource.getAll();
41
+ this.data = response.map((el) => ({ code: el.code }));
42
+ }
43
+ return this.data;
44
+ });
45
+ }
46
+ };
47
+ exports.SmartCityListDatasourceCache = SmartCityListDatasourceCache = __decorate([
48
+ (0, tsyringe_1.injectable)(),
49
+ __param(0, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ParkingProviderDataSourceFactory)),
50
+ __metadata("design:paramtypes", [Object])
51
+ ], SmartCityListDatasourceCache);
52
+ //# sourceMappingURL=SmartCityListDatasourceCache.js.map
@@ -0,0 +1 @@
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;IAEY,MAAM;;YACf,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,GAAG,YAAY,GAAG,GAAG,EAAE;gBAC1D,MAAM,QAAQ,GAAsB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACnE,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aACzD;YAED,OAAO,IAAI,CAAC,IAAI,CAAC;QACrB,CAAC;KAAA;CACJ,CAAA;uCAvBY,4BAA4B;IADxC,IAAA,qBAAU,GAAE;IAOJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,gCAAgC,CAAC,CAAA;;GANzD,4BAA4B,CAuBxC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ParkingsContainer = void 0;
4
4
  const TskTariffChecker_1 = require("../businessRules/TskTariffChecker");
5
5
  const ParkingProviderDataSourceFactory_1 = require("../datasources/ParkingProviderDataSourceFactory");
6
+ const SmartCityListDatasourceCache_1 = require("../datasources/smart4city/SmartCityListDatasourceCache");
6
7
  const TskParkingDataSourceFactory_1 = require("../datasources/TskParkingDataSourceFactory");
7
8
  const MrParkitDataSourceProvider_1 = require("../datasources/mr-parkit/MrParkitDataSourceProvider");
8
9
  const ParkingMachinesRepository_1 = require("../repositories/ParkingMachinesRepository");
@@ -13,10 +14,15 @@ const ParkingsRepository_1 = require("../repositories/ParkingsRepository");
13
14
  const ParkingsRedisModel_1 = require("../repositories/redis/ParkingsRedisModel");
14
15
  const TskParkingMachinesTransformation_1 = require("../transformations/TskParkingMachinesTransformation");
15
16
  const SaveMrParkitDataTask_1 = require("../workers/tasks/SaveMrParkitDataTask");
17
+ const UpdateSmart4CityMeasurementsTask_1 = require("../workers/tasks/UpdateSmart4CityMeasurementsTask");
16
18
  const ioc_1 = require("@golemio/core/dist/integration-engine/ioc");
17
19
  const Di_1 = require("@golemio/core/dist/integration-engine/ioc/Di");
18
20
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
19
21
  const ModuleContainerToken_1 = require("./ModuleContainerToken");
22
+ const GenerateSmart4CityTaskListTask_1 = require("../workers/tasks/GenerateSmart4CityTaskListTask");
23
+ const UpdateSmart4CityLocationsTask_1 = require("../workers/tasks/UpdateSmart4CityLocationsTask");
24
+ const Smart4CityListDataSourceProvider_1 = require("../datasources/smart4city/Smart4CityListDataSourceProvider");
25
+ const Smart4CityLocationDataSourceProvider_1 = require("../datasources/smart4city/Smart4CityLocationDataSourceProvider");
20
26
  //#region Initialization
21
27
  const parkingsContainer = Di_1.IntegrationEngineContainer.createChildContainer();
22
28
  exports.ParkingsContainer = parkingsContainer;
@@ -40,6 +46,9 @@ parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.TskParkin
40
46
  useFactory: (0, tsyringe_1.instanceCachingFactory)(() => parkingDataSourceFactory.getDataSource("parkingTariffs")),
41
47
  });
42
48
  parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.MrParkitDataSourceProvider, MrParkitDataSourceProvider_1.MrParkitDataSourceProvider);
49
+ parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.Smart4CityListDataSourceProvider, Smart4CityListDataSourceProvider_1.Smart4CityListDataSourceProvider);
50
+ parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.Smart4CityLocationDataSourceProvider, Smart4CityLocationDataSourceProvider_1.Smart4CityLocationDataSourceProvider);
51
+ parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.SmartCityListDatasourceCache, SmartCityListDatasourceCache_1.SmartCityListDatasourceCache);
43
52
  parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.ParkingProviderDataSourceFactory, ParkingProviderDataSourceFactory_1.ParkingProviderDataSourceFactory);
44
53
  //#endregion
45
54
  //#region Transformation
@@ -59,4 +68,7 @@ parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.TskTariff
59
68
  //#endregion
60
69
  //#region Tasks
61
70
  parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.SaveMrParkitDataTask, SaveMrParkitDataTask_1.SaveMrParkitDataTask);
71
+ parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.GenerateSmart4CityTaskListTask, GenerateSmart4CityTaskListTask_1.GenerateSmart4CityTaskListTask);
72
+ parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.UpdateSmart4CityLocationsTask, UpdateSmart4CityLocationsTask_1.UpdateSmart4CityLocationsTask);
73
+ parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.UpdateSmart4CityMeasurementsTask, UpdateSmart4CityMeasurementsTask_1.UpdateSmart4CityMeasurementsTask);
62
74
  //# sourceMappingURL=Di.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,wEAAsE;AACtE,sGAAoG;AACpG,4FAA0F;AAC1F,oGAAkG;AAClG,yFAAuF;AACvF,uFAAqF;AACrF,uGAAqG;AACrG,2FAAyF;AACzF,2EAAyE;AACzE,iFAA+E;AAC/E,0GAAwG;AACxG,gFAA8E;AAO9E,mEAA2E;AAC3E,qEAA0F;AAC1F,iEAAiG;AACjG,iEAA8D;AAE9D,wBAAwB;AACxB,MAAM,iBAAiB,GAAwB,+BAA0B,CAAC,oBAAoB,EAAE,CAAC;AAyDnE,8CAAiB;AAxD/C,MAAM,MAAM,GAAG,+BAA0B,CAAC,OAAO,CAAiB,oBAAc,CAAC,MAAM,CAAC,CAAC;AACzF,MAAM,wBAAwB,GAAG,IAAI,yDAA2B,CAAC,MAAM,CAAC,CAAC;AACzE,YAAY;AAEZ,oBAAoB;AACpB,iBAAiB,CAAC,QAAQ,CAAsC,2CAAoB,CAAC,mCAAmC,EAAE;IACtH,UAAU,EAAE,IAAA,iCAAsB,EAAsC,GAAG,EAAE,CACzE,wBAAwB,CAAC,aAAa,CAAC,wBAAwB,CAAC,CACnE;CACJ,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAsC,2CAAoB,CAAC,mCAAmC,EAAE;IACtH,UAAU,EAAE,IAAA,iCAAsB,EAAsC,GAAG,EAAE,CACzE,wBAAwB,CAAC,aAAa,CAAC,wBAAwB,CAAC,CACnE;CACJ,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAiC,2CAAoB,CAAC,4BAA4B,EAAE;IAC1G,UAAU,EAAE,IAAA,iCAAsB,EAAiC,GAAG,EAAE,CACpE,wBAAwB,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAC5D;CACJ,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAiC,2CAAoB,CAAC,4BAA4B,EAAE;IAC1G,UAAU,EAAE,IAAA,iCAAsB,EAAiC,GAAG,EAAE,CACpE,wBAAwB,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAC5D;CACJ,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAsC,2CAAoB,CAAC,gCAAgC,EAAE;IACnH,UAAU,EAAE,IAAA,iCAAsB,EAAsC,GAAG,EAAE,CACzE,wBAAwB,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAC3D;CACJ,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,0BAA0B,EAAE,uDAA0B,CAAC,CAAC;AACxG,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC;AAC7H,YAAY;AAEZ,wBAAwB;AACxB,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC;AACpH,YAAY;AAEZ,sBAAsB;AACtB,iBAAiB;KACZ,QAAQ,CAAC,2CAAoB,CAAC,kBAAkB,EAAE,uCAAkB,CAAC;KACrE,QAAQ,CAAC,2CAAoB,CAAC,0BAA0B,EAAE,uDAA0B,CAAC;KACrF,QAAQ,CAAC,2CAAoB,CAAC,wBAAwB,EAAE,mDAAwB,CAAC;KACjF,QAAQ,CAAC,2CAAoB,CAAC,gCAAgC,EAAE,mEAAgC,CAAC;KACjG,QAAQ,CAAC,2CAAoB,CAAC,yBAAyB,EAAE,qDAAyB,CAAC,CAAC;AACzF,iBAAiB,CAAC,QAAQ,CAAqB,2CAAoB,CAAC,UAAU,EAAE,uCAAkB,CAAC,CAAC;AACpG,YAAY;AAEZ,iBAAiB;AACjB,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAC;AACpF,YAAY;AAEZ,eAAe;AACf,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,oBAAoB,EAAE,2CAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,wEAAsE;AACtE,sGAAoG;AACpG,yGAAuG;AACvG,4FAA0F;AAC1F,oGAAkG;AAClG,yFAAuF;AACvF,uFAAqF;AACrF,uGAAqG;AACrG,2FAAyF;AACzF,2EAAyE;AACzE,iFAA+E;AAG/E,0GAAwG;AACxG,gFAA8E;AAC9E,wGAAsG;AAOtG,mEAA2E;AAC3E,qEAA0F;AAC1F,iEAAiG;AACjG,iEAA8D;AAC9D,oGAAkG;AAClG,kGAAgG;AAChG,iHAA+G;AAC/G,yHAAuH;AAEvH,wBAAwB;AACxB,MAAM,iBAAiB,GAAwB,+BAA0B,CAAC,oBAAoB,EAAE,CAAC;AA+DnE,8CAAiB;AA9D/C,MAAM,MAAM,GAAG,+BAA0B,CAAC,OAAO,CAAiB,oBAAc,CAAC,MAAM,CAAC,CAAC;AACzF,MAAM,wBAAwB,GAAG,IAAI,yDAA2B,CAAC,MAAM,CAAC,CAAC;AACzE,YAAY;AAEZ,oBAAoB;AACpB,iBAAiB,CAAC,QAAQ,CAAsC,2CAAoB,CAAC,mCAAmC,EAAE;IACtH,UAAU,EAAE,IAAA,iCAAsB,EAAsC,GAAG,EAAE,CACzE,wBAAwB,CAAC,aAAa,CAAC,wBAAwB,CAAC,CACnE;CACJ,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAsC,2CAAoB,CAAC,mCAAmC,EAAE;IACtH,UAAU,EAAE,IAAA,iCAAsB,EAAsC,GAAG,EAAE,CACzE,wBAAwB,CAAC,aAAa,CAAC,wBAAwB,CAAC,CACnE;CACJ,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAiC,2CAAoB,CAAC,4BAA4B,EAAE;IAC1G,UAAU,EAAE,IAAA,iCAAsB,EAAiC,GAAG,EAAE,CACpE,wBAAwB,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAC5D;CACJ,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAiC,2CAAoB,CAAC,4BAA4B,EAAE;IAC1G,UAAU,EAAE,IAAA,iCAAsB,EAAiC,GAAG,EAAE,CACpE,wBAAwB,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAC5D;CACJ,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAsC,2CAAoB,CAAC,gCAAgC,EAAE;IACnH,UAAU,EAAE,IAAA,iCAAsB,EAAsC,GAAG,EAAE,CACzE,wBAAwB,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAC3D;CACJ,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,0BAA0B,EAAE,uDAA0B,CAAC,CAAC;AACxG,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC;AACpH,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,oCAAoC,EAAE,2EAAoC,CAAC,CAAC;AAC5H,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,4BAA4B,EAAE,2DAA4B,CAAC,CAAC;AAC5G,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC;AAC7H,YAAY;AAEZ,wBAAwB;AACxB,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC;AACpH,YAAY;AAEZ,sBAAsB;AACtB,iBAAiB;KACZ,QAAQ,CAAC,2CAAoB,CAAC,kBAAkB,EAAE,uCAAkB,CAAC;KACrE,QAAQ,CAAC,2CAAoB,CAAC,0BAA0B,EAAE,uDAA0B,CAAC;KACrF,QAAQ,CAAC,2CAAoB,CAAC,wBAAwB,EAAE,mDAAwB,CAAC;KACjF,QAAQ,CAAC,2CAAoB,CAAC,gCAAgC,EAAE,mEAAgC,CAAC;KACjG,QAAQ,CAAC,2CAAoB,CAAC,yBAAyB,EAAE,qDAAyB,CAAC,CAAC;AACzF,iBAAiB,CAAC,QAAQ,CAAqB,2CAAoB,CAAC,UAAU,EAAE,uCAAkB,CAAC,CAAC;AACpG,YAAY;AAEZ,iBAAiB;AACjB,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAC;AACpF,YAAY;AAEZ,eAAe;AACf,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,oBAAoB,EAAE,2CAAoB,CAAC,CAAC;AACrG,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,8BAA8B,EAAE,+DAA8B,CAAC,CAAC;AACzH,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,6BAA6B,EAAE,6DAA6B,CAAC,CAAC;AACvH,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC"}
@@ -16,5 +16,11 @@ declare const ModuleContainerToken: {
16
16
  ParkingProviderDataSourceFactory: symbol;
17
17
  MrParkitDataSourceProvider: symbol;
18
18
  SaveMrParkitDataTask: symbol;
19
+ Smart4CityListDataSourceProvider: symbol;
20
+ Smart4CityLocationDataSourceProvider: symbol;
21
+ SmartCityListDatasourceCache: symbol;
22
+ GenerateSmart4CityTaskListTask: symbol;
23
+ UpdateSmart4CityLocationsTask: symbol;
24
+ UpdateSmart4CityMeasurementsTask: symbol;
19
25
  };
20
26
  export { ModuleContainerToken };
@@ -21,6 +21,14 @@ const ModuleContainerToken = {
21
21
  MrParkitDataSourceProvider: Symbol(),
22
22
  SaveMrParkitDataTask: Symbol(),
23
23
  //#endregion
24
+ //#region Smart4City
25
+ Smart4CityListDataSourceProvider: Symbol(),
26
+ Smart4CityLocationDataSourceProvider: Symbol(),
27
+ SmartCityListDatasourceCache: Symbol(),
28
+ GenerateSmart4CityTaskListTask: Symbol(),
29
+ UpdateSmart4CityLocationsTask: Symbol(),
30
+ UpdateSmart4CityMeasurementsTask: Symbol(),
31
+ //#endregion
24
32
  };
25
33
  exports.ModuleContainerToken = ModuleContainerToken;
26
34
  //# sourceMappingURL=ModuleContainerToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleContainerToken.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/ModuleContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,gBAAgB,EAAE,MAAM,EAAE;IAC1B,UAAU,EAAE,MAAM,EAAE;IACpB,kBAAkB,EAAE,MAAM,EAAE;IAC5B,0BAA0B,EAAE,MAAM,EAAE;IACpC,wBAAwB,EAAE,MAAM,EAAE;IAClC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,yBAAyB,EAAE,MAAM,EAAE;IAEnC,4BAA4B,EAAE,MAAM,EAAE;IACtC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,mCAAmC,EAAE,MAAM,EAAE;IAC7C,mCAAmC,EAAE,MAAM,EAAE;IAC7C,4BAA4B,EAAE,MAAM,EAAE;IACtC,+BAA+B,EAAE,MAAM,EAAE;IAEzC,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,gCAAgC,EAAE,MAAM,EAAE;IAE1C,mBAAmB;IACnB,0BAA0B,EAAE,MAAM,EAAE;IACpC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,YAAY;CACf,CAAC;AACO,oDAAoB"}
1
+ {"version":3,"file":"ModuleContainerToken.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/ModuleContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,gBAAgB,EAAE,MAAM,EAAE;IAC1B,UAAU,EAAE,MAAM,EAAE;IACpB,kBAAkB,EAAE,MAAM,EAAE;IAC5B,0BAA0B,EAAE,MAAM,EAAE;IACpC,wBAAwB,EAAE,MAAM,EAAE;IAClC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,yBAAyB,EAAE,MAAM,EAAE;IAEnC,4BAA4B,EAAE,MAAM,EAAE;IACtC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,mCAAmC,EAAE,MAAM,EAAE;IAC7C,mCAAmC,EAAE,MAAM,EAAE;IAC7C,4BAA4B,EAAE,MAAM,EAAE;IACtC,+BAA+B,EAAE,MAAM,EAAE;IAEzC,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,gCAAgC,EAAE,MAAM,EAAE;IAE1C,mBAAmB;IACnB,0BAA0B,EAAE,MAAM,EAAE;IACpC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,YAAY;IAEZ,oBAAoB;IACpB,gCAAgC,EAAE,MAAM,EAAE;IAC1C,oCAAoC,EAAE,MAAM,EAAE;IAC9C,4BAA4B,EAAE,MAAM,EAAE;IACtC,8BAA8B,EAAE,MAAM,EAAE;IACxC,6BAA6B,EAAE,MAAM,EAAE;IACvC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,YAAY;CACf,CAAC;AACO,oDAAoB"}
@@ -0,0 +1,20 @@
1
+ import { IParking } from "../ParkingInterface";
2
+ import { ISmart4CityLocation } from "../../schema-definitions/datasources/interfaces/ISmart4CityLocation";
3
+ import { IParkingLocation } from "../../schema-definitions/models/interfaces/IParkingLocation";
4
+ import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
5
+ interface ISmart4CityLocationTransformed extends IParking {
6
+ parkingLocation: IParkingLocation;
7
+ }
8
+ export interface ISmart4CityLocationCollectionTransformed {
9
+ parking: IParking[];
10
+ parkingLocation: IParkingLocation[];
11
+ }
12
+ export declare class Smart4CityLocationTransformation extends AbstractTransformation<ISmart4CityLocation, ISmart4CityLocationTransformed> {
13
+ private transformationDate;
14
+ name: string;
15
+ constructor(transformationDate: Date);
16
+ protected transformInternal: (data: ISmart4CityLocation) => ISmart4CityLocationTransformed;
17
+ transformCollection: (data: ISmart4CityLocation[]) => ISmart4CityLocationCollectionTransformed;
18
+ private transformLocation;
19
+ }
20
+ export {};
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.Smart4CityLocationTransformation = void 0;
15
+ const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
16
+ const output_gateway_1 = require("@golemio/core/dist/output-gateway");
17
+ const getSmart4cityParkingType = (data) => {
18
+ switch (data) {
19
+ case 1:
20
+ return "surface";
21
+ case 2:
22
+ return "on_street";
23
+ default:
24
+ return null;
25
+ }
26
+ };
27
+ class Smart4CityLocationTransformation extends AbstractTransformation_1.AbstractTransformation {
28
+ constructor(transformationDate) {
29
+ super();
30
+ this.transformationDate = transformationDate;
31
+ this.name = "Smart4CityLocationTransformation";
32
+ this.transformInternal = (data) => {
33
+ const location = {
34
+ type: output_gateway_1.GeoCoordinatesType.Point,
35
+ coordinates: [data.longitude, data.latitude],
36
+ };
37
+ const parking = {
38
+ id: `smart4city-${data.id}`,
39
+ source: "smart4city",
40
+ source_id: data.id.toString(),
41
+ data_provider: "www.smart4city.cz",
42
+ name: data.name,
43
+ location,
44
+ centroid: location,
45
+ total_spot_number: data.capacity !== 0 ? data.capacity : null,
46
+ date_modified: this.transformationDate.toISOString(),
47
+ valid_from: this.transformationDate.toISOString(),
48
+ parking_type: getSmart4cityParkingType(data.type),
49
+ };
50
+ return Object.assign(Object.assign({}, parking), { parkingLocation: this.transformLocation(parking) });
51
+ };
52
+ this.transformCollection = (data) => {
53
+ const result = {
54
+ parking: [],
55
+ parkingLocation: [],
56
+ };
57
+ for (const el of data) {
58
+ if (!el.closed) {
59
+ const _a = this.transformElement(el), { parkingLocation } = _a, parking = __rest(_a, ["parkingLocation"]);
60
+ result.parking.push(parking);
61
+ result.parkingLocation.push(parkingLocation);
62
+ }
63
+ }
64
+ return result;
65
+ };
66
+ this.transformLocation = (parking) => {
67
+ return {
68
+ id: parking.id,
69
+ source: parking.source,
70
+ source_id: parking.source_id,
71
+ data_provider: parking.data_provider,
72
+ location: parking.location,
73
+ centroid: parking.centroid,
74
+ total_spot_number: parking.total_spot_number,
75
+ };
76
+ };
77
+ }
78
+ }
79
+ exports.Smart4CityLocationTransformation = Smart4CityLocationTransformation;
80
+ //# sourceMappingURL=Smart4CityLocationTransformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Smart4CityLocationTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/Smart4CityLocationTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA,6GAA0G;AAC1G,sEAA6F;AAW7F,MAAM,wBAAwB,GAAG,CAAC,IAAmB,EAAE,EAAE;IACrD,QAAQ,IAAI,EAAE;QACV,KAAK,CAAC;YACF,OAAO,SAAS,CAAC;QACrB,KAAK,CAAC;YACF,OAAO,WAAW,CAAC;QACvB;YACI,OAAO,IAAI,CAAC;KACnB;AACL,CAAC,CAAC;AAEF,MAAa,gCAAiC,SAAQ,+CAGrD;IAGG,YAAoB,kBAAwB;QACxC,KAAK,EAAE,CAAC;QADQ,uBAAkB,GAAlB,kBAAkB,CAAM;QAFrC,SAAI,GAAG,kCAAkC,CAAC;QAMvC,sBAAiB,GAAG,CAAC,IAAyB,EAAkC,EAAE;YACxF,MAAM,QAAQ,GAAyB;gBACnC,IAAI,EAAE,mCAAkB,CAAC,KAAK;gBAC9B,WAAW,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC;aAC/C,CAAC;YAEF,MAAM,OAAO,GAAa;gBACtB,EAAE,EAAE,cAAc,IAAI,CAAC,EAAE,EAAE;gBAC3B,MAAM,EAAE,YAAY;gBACpB,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;gBAC7B,aAAa,EAAE,mBAAmB;gBAClC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ;gBACR,QAAQ,EAAE,QAAQ;gBAClB,iBAAiB,EAAE,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;gBAC7D,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;gBACpD,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;gBACjD,YAAY,EAAE,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;aACpD,CAAC;YAEF,uCACO,OAAO,KACV,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAClD;QACN,CAAC,CAAC;QAEK,wBAAmB,GAAG,CAAC,IAA2B,EAA4C,EAAE;YACnG,MAAM,MAAM,GAA6C;gBACrD,OAAO,EAAE,EAAE;gBACX,eAAe,EAAE,EAAE;aACtB,CAAC;YAEF,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE;gBACnB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;oBACZ,MAAM,KAAkC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAA3D,EAAE,eAAe,OAA0C,EAArC,OAAO,cAA7B,mBAA+B,CAA4B,CAAC;oBAClE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC7B,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;iBAChD;aACJ;YAED,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;QAEM,sBAAiB,GAAG,CAAC,OAAiB,EAAoB,EAAE;YAChE,OAAO;gBACH,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;aAC/C,CAAC;QACN,CAAC,CAAC;IAvDF,CAAC;CAwDJ;AAhED,4EAgEC"}
@@ -0,0 +1,10 @@
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
+ }