@golemio/parkings 1.7.5 → 1.7.6-dev.1138282422
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.
- package/db/migrations/postgresql/20240107151449-smart4city.js +53 -0
- package/db/migrations/postgresql/sqls/20240107151449-smart4city-down.sql +1 -0
- package/db/migrations/postgresql/sqls/20240107151449-smart4city-up.sql +8 -0
- package/dist/integration-engine/ParkingInterface.d.ts +3 -3
- package/dist/integration-engine/datasources/ParkingProviderDataSourceFactory.d.ts +3 -1
- package/dist/integration-engine/datasources/ParkingProviderDataSourceFactory.js +6 -2
- package/dist/integration-engine/datasources/ParkingProviderDataSourceFactory.js.map +1 -1
- package/dist/integration-engine/datasources/helpers/ParkingProviderEnum.d.ts +3 -1
- package/dist/integration-engine/datasources/helpers/ParkingProviderEnum.js +2 -0
- package/dist/integration-engine/datasources/helpers/ParkingProviderEnum.js.map +1 -1
- package/dist/integration-engine/datasources/interfaces/IParkingProviderDataSourceFactory.d.ts +4 -0
- package/dist/integration-engine/datasources/interfaces/IParkingProviderDataSourceFactory.js.map +1 -1
- package/dist/integration-engine/datasources/smart4city/Smart4CityListDataSourceProvider.d.ts +11 -0
- package/dist/integration-engine/datasources/smart4city/Smart4CityListDataSourceProvider.js +44 -0
- package/dist/integration-engine/datasources/smart4city/Smart4CityListDataSourceProvider.js.map +1 -0
- package/dist/integration-engine/datasources/smart4city/Smart4CityLocationDataSourceProvider.d.ts +11 -0
- package/dist/integration-engine/datasources/smart4city/Smart4CityLocationDataSourceProvider.js +49 -0
- package/dist/integration-engine/datasources/smart4city/Smart4CityLocationDataSourceProvider.js.map +1 -0
- package/dist/integration-engine/datasources/smart4city/SmartCityListDatasourceCache.d.ts +10 -0
- package/dist/integration-engine/datasources/smart4city/SmartCityListDatasourceCache.js +52 -0
- package/dist/integration-engine/datasources/smart4city/SmartCityListDatasourceCache.js.map +1 -0
- package/dist/integration-engine/ioc/Di.js +12 -0
- package/dist/integration-engine/ioc/Di.js.map +1 -1
- package/dist/integration-engine/ioc/ModuleContainerToken.d.ts +6 -0
- package/dist/integration-engine/ioc/ModuleContainerToken.js +8 -0
- package/dist/integration-engine/ioc/ModuleContainerToken.js.map +1 -1
- package/dist/integration-engine/transformations/Smart4CityLocationTransformation.d.ts +20 -0
- package/dist/integration-engine/transformations/Smart4CityLocationTransformation.js +80 -0
- package/dist/integration-engine/transformations/Smart4CityLocationTransformation.js.map +1 -0
- package/dist/integration-engine/transformations/Smart4CityMeasurementTransformation.d.ts +10 -0
- package/dist/integration-engine/transformations/Smart4CityMeasurementTransformation.js +35 -0
- package/dist/integration-engine/transformations/Smart4CityMeasurementTransformation.js.map +1 -0
- package/dist/integration-engine/workers/NewParkingsWorker.d.ts +1 -1
- package/dist/integration-engine/workers/NewParkingsWorker.js +3 -0
- package/dist/integration-engine/workers/NewParkingsWorker.js.map +1 -1
- package/dist/integration-engine/workers/schemas/Smart4CityTaskTypeSchema.d.ts +6 -0
- package/dist/integration-engine/workers/schemas/Smart4CityTaskTypeSchema.js +21 -0
- package/dist/integration-engine/workers/schemas/Smart4CityTaskTypeSchema.js.map +1 -0
- package/dist/integration-engine/workers/schemas/UpdateSmart4CitySchema.d.ts +6 -0
- package/dist/integration-engine/workers/schemas/UpdateSmart4CitySchema.js +21 -0
- package/dist/integration-engine/workers/schemas/UpdateSmart4CitySchema.js.map +1 -0
- package/dist/integration-engine/workers/tasks/GenerateSmart4CityTaskListTask.d.ts +17 -0
- package/dist/integration-engine/workers/tasks/GenerateSmart4CityTaskListTask.js +72 -0
- package/dist/integration-engine/workers/tasks/GenerateSmart4CityTaskListTask.js.map +1 -0
- package/dist/integration-engine/workers/tasks/UpdateSmart4CityLocationsTask.d.ts +19 -0
- package/dist/integration-engine/workers/tasks/UpdateSmart4CityLocationsTask.js +114 -0
- package/dist/integration-engine/workers/tasks/UpdateSmart4CityLocationsTask.js.map +1 -0
- package/dist/integration-engine/workers/tasks/UpdateSmart4CityMeasurementsTask.d.ts +12 -0
- package/dist/integration-engine/workers/tasks/UpdateSmart4CityMeasurementsTask.js +90 -0
- package/dist/integration-engine/workers/tasks/UpdateSmart4CityMeasurementsTask.js.map +1 -0
- package/dist/schema-definitions/datasources/ParkingMeasurementsDtoSchema.js +2 -2
- package/dist/schema-definitions/datasources/ParkingMeasurementsDtoSchema.js.map +1 -1
- package/dist/schema-definitions/datasources/Smart4CityListJsonSchema.d.ts +3 -0
- package/dist/schema-definitions/datasources/Smart4CityListJsonSchema.js +20 -0
- package/dist/schema-definitions/datasources/Smart4CityListJsonSchema.js.map +1 -0
- package/dist/schema-definitions/datasources/Smart4CityLocationJsonSchema.d.ts +3 -0
- package/dist/schema-definitions/datasources/Smart4CityLocationJsonSchema.js +22 -0
- package/dist/schema-definitions/datasources/Smart4CityLocationJsonSchema.js.map +1 -0
- package/dist/schema-definitions/datasources/interfaces/IParkingsMeasurementDto.d.ts +2 -2
- package/dist/schema-definitions/datasources/interfaces/ISmart4CityList.d.ts +8 -0
- package/dist/schema-definitions/datasources/interfaces/ISmart4CityList.js +3 -0
- package/dist/schema-definitions/datasources/interfaces/ISmart4CityList.js.map +1 -0
- package/dist/schema-definitions/datasources/interfaces/ISmart4CityLocation.d.ts +10 -0
- package/dist/schema-definitions/datasources/interfaces/ISmart4CityLocation.js +3 -0
- package/dist/schema-definitions/datasources/interfaces/ISmart4CityLocation.js.map +1 -0
- package/docs/implementation-documentation.md +73 -1
- package/package.json +2 -2
|
@@ -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
|
-
|
|
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;
|
|
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"}
|
|
@@ -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,
|
|
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"}
|
package/dist/integration-engine/datasources/interfaces/IParkingProviderDataSourceFactory.d.ts
CHANGED
|
@@ -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 {
|
package/dist/integration-engine/datasources/interfaces/IParkingProviderDataSourceFactory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IParkingProviderDataSourceFactory.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/interfaces/IParkingProviderDataSourceFactory.ts"],"names":[],"mappings":";;
|
|
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
|
package/dist/integration-engine/datasources/smart4city/Smart4CityListDataSourceProvider.js.map
ADDED
|
@@ -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"}
|
package/dist/integration-engine/datasources/smart4city/Smart4CityLocationDataSourceProvider.d.ts
ADDED
|
@@ -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
|
+
}
|
package/dist/integration-engine/datasources/smart4city/Smart4CityLocationDataSourceProvider.js
ADDED
|
@@ -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
|
package/dist/integration-engine/datasources/smart4city/Smart4CityLocationDataSourceProvider.js.map
ADDED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
+
}
|