@golemio/parkings 1.4.9-dev.854654247 → 1.4.10-dev.861461336
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/example/00_clear_test_data.sql +1 -0
- package/db/migrations/postgresql/20230504110450-business-errors.js +53 -0
- package/db/migrations/postgresql/sqls/20230504110450-business-errors-down.sql +1 -0
- package/db/migrations/postgresql/sqls/20230504110450-business-errors-up.sql +8 -0
- package/dist/integration-engine/ParkingsWorker.d.ts +2 -25
- package/dist/integration-engine/ParkingsWorker.js +17 -107
- package/dist/integration-engine/ParkingsWorker.js.map +1 -1
- package/dist/integration-engine/businessRules/AbstractTariffChecker.d.ts +10 -0
- package/dist/integration-engine/businessRules/AbstractTariffChecker.js +26 -0
- package/dist/integration-engine/businessRules/AbstractTariffChecker.js.map +1 -0
- package/dist/integration-engine/businessRules/TariffCheckerFactory.d.ts +8 -0
- package/dist/integration-engine/businessRules/TariffCheckerFactory.js +22 -0
- package/dist/integration-engine/businessRules/TariffCheckerFactory.js.map +1 -0
- package/dist/integration-engine/businessRules/TskTariffChecker.d.ts +6 -0
- package/dist/integration-engine/businessRules/TskTariffChecker.js +13 -0
- package/dist/integration-engine/businessRules/TskTariffChecker.js.map +1 -0
- package/dist/integration-engine/businessRules/interfaces/ITariffChecker.d.ts +4 -0
- package/dist/integration-engine/businessRules/interfaces/ITariffChecker.js +3 -0
- package/dist/integration-engine/businessRules/interfaces/ITariffChecker.js.map +1 -0
- package/dist/integration-engine/businessRules/interfaces/ITariffCheckerResult.d.ts +6 -0
- package/dist/integration-engine/businessRules/interfaces/ITariffCheckerResult.js +3 -0
- package/dist/integration-engine/businessRules/interfaces/ITariffCheckerResult.js.map +1 -0
- package/dist/integration-engine/businessRules/interfaces/ITariffInfo.d.ts +7 -0
- package/dist/integration-engine/businessRules/interfaces/ITariffInfo.js +3 -0
- package/dist/integration-engine/businessRules/interfaces/ITariffInfo.js.map +1 -0
- package/dist/integration-engine/businessRules/rules/IRule.d.ts +3 -0
- package/dist/integration-engine/businessRules/rules/IRule.js +3 -0
- package/dist/integration-engine/businessRules/rules/IRule.js.map +1 -0
- package/dist/integration-engine/businessRules/rules/MaxChargeInteractionsRule.d.ts +5 -0
- package/dist/integration-engine/businessRules/rules/MaxChargeInteractionsRule.js +17 -0
- package/dist/integration-engine/businessRules/rules/MaxChargeInteractionsRule.js.map +1 -0
- package/dist/integration-engine/businessRules/rules/MaxPriceRule.d.ts +5 -0
- package/dist/integration-engine/businessRules/rules/MaxPriceRule.js +15 -0
- package/dist/integration-engine/businessRules/rules/MaxPriceRule.js.map +1 -0
- package/dist/integration-engine/businessRules/rules/RuleEnum.d.ts +5 -0
- package/dist/integration-engine/businessRules/rules/RuleEnum.js +10 -0
- package/dist/integration-engine/businessRules/rules/RuleEnum.js.map +1 -0
- package/dist/integration-engine/businessRules/rules/RuleFactory.d.ts +7 -0
- package/dist/integration-engine/businessRules/rules/RuleFactory.js +23 -0
- package/dist/integration-engine/businessRules/rules/RuleFactory.js.map +1 -0
- package/dist/integration-engine/businessRules/rules/ZeroMaxParkingTime.d.ts +5 -0
- package/dist/integration-engine/businessRules/rules/ZeroMaxParkingTime.js +10 -0
- package/dist/integration-engine/businessRules/rules/ZeroMaxParkingTime.js.map +1 -0
- package/dist/integration-engine/helpers/TskCalculationHelper.d.ts +6 -0
- package/dist/integration-engine/helpers/TskCalculationHelper.js +36 -0
- package/dist/integration-engine/helpers/TskCalculationHelper.js.map +1 -0
- package/dist/integration-engine/index.d.ts +2 -1
- package/dist/integration-engine/index.js +2 -1
- package/dist/integration-engine/index.js.map +1 -1
- package/dist/integration-engine/ioc/Di.d.ts +2 -0
- package/dist/integration-engine/ioc/Di.js +28 -0
- package/dist/integration-engine/ioc/Di.js.map +1 -0
- package/dist/integration-engine/ioc/ModuleContainerToken.d.ts +8 -0
- package/dist/integration-engine/ioc/ModuleContainerToken.js +12 -0
- package/dist/integration-engine/ioc/ModuleContainerToken.js.map +1 -0
- package/dist/integration-engine/queueDefinitions.js +0 -9
- package/dist/integration-engine/queueDefinitions.js.map +1 -1
- package/dist/integration-engine/repositories/ParkingsBusinessErrorsRepository.d.ts +7 -0
- package/dist/integration-engine/repositories/ParkingsBusinessErrorsRepository.js +35 -0
- package/dist/integration-engine/repositories/ParkingsBusinessErrorsRepository.js.map +1 -0
- package/dist/integration-engine/repositories/redis/ParkingsRedisModel.d.ts +4 -0
- package/dist/integration-engine/repositories/redis/ParkingsRedisModel.js +15 -0
- package/dist/integration-engine/repositories/redis/ParkingsRedisModel.js.map +1 -0
- package/dist/integration-engine/transformations/TSKParkingTariffTransformation.js +4 -9
- package/dist/integration-engine/transformations/TSKParkingTariffTransformation.js.map +1 -1
- package/dist/integration-engine/workers/NewParkingsWorker.d.ts +5 -0
- package/dist/integration-engine/workers/NewParkingsWorker.js +14 -0
- package/dist/integration-engine/workers/NewParkingsWorker.js.map +1 -0
- package/dist/integration-engine/workers/tasks/SaveParkingZonesPrague.d.ts +37 -0
- package/dist/integration-engine/workers/tasks/SaveParkingZonesPrague.js +191 -0
- package/dist/integration-engine/workers/tasks/SaveParkingZonesPrague.js.map +1 -0
- package/dist/schema-definitions/models/BusinessError.d.ts +12 -0
- package/dist/schema-definitions/models/BusinessError.js +30 -0
- package/dist/schema-definitions/models/BusinessError.js.map +1 -0
- package/dist/schema-definitions/models/interfaces/IBusinessError.d.ts +7 -0
- package/dist/schema-definitions/models/interfaces/IBusinessError.js +3 -0
- package/dist/schema-definitions/models/interfaces/IBusinessError.js.map +1 -0
- 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', '20230504110450-business-errors-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', '20230504110450-business-errors-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
|
+
DROP TABLE parkings_business_errors;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
CREATE TABLE parkings_business_errors (
|
|
2
|
+
identifier uuid NOT NULL,
|
|
3
|
+
provider varchar(10) NOT NULL,
|
|
4
|
+
record_date date NOT NULL,
|
|
5
|
+
"type" varchar(50) NOT NULL,
|
|
6
|
+
detail json NOT NULL,
|
|
7
|
+
CONSTRAINT parkings_business_errors_pk PRIMARY KEY (identifier,provider,record_date)
|
|
8
|
+
);
|
|
@@ -1,41 +1,18 @@
|
|
|
1
1
|
import { BaseWorker } from "@golemio/core/dist/integration-engine/workers";
|
|
2
2
|
export declare class ParkingsWorker extends BaseWorker {
|
|
3
|
-
private transformationDate;
|
|
4
3
|
private dataSource;
|
|
5
4
|
private koridParkingConfigTransformation;
|
|
6
5
|
private koridParkingDataTransformation;
|
|
7
6
|
private parkingsModel;
|
|
8
|
-
private parkingsLocationModel;
|
|
9
7
|
private parkingsMeasurementsModel;
|
|
10
8
|
private parkingsMeasurementsActualModel;
|
|
11
9
|
private parkingsTariffsModel;
|
|
12
10
|
private tskAverageOccupancyRepository;
|
|
13
|
-
private ftpTSKSettings;
|
|
14
|
-
private dataSourceIPR;
|
|
15
|
-
private dataSourceTSK;
|
|
16
|
-
private dataSourceTariffTSK;
|
|
17
|
-
private iprTransformation;
|
|
18
|
-
private tskTransformation;
|
|
19
11
|
private parkingLotsTransformation;
|
|
20
|
-
private tskTariffTransformation;
|
|
21
12
|
private redisModel;
|
|
13
|
+
private config;
|
|
14
|
+
private logger;
|
|
22
15
|
constructor();
|
|
23
|
-
/**
|
|
24
|
-
* Parking zones Prague
|
|
25
|
-
* - store location data for parking zones in Prague.
|
|
26
|
-
* - merged TSK and IPR data sources
|
|
27
|
-
*/
|
|
28
|
-
private saveParkingZonesLocationsPrague;
|
|
29
|
-
/**
|
|
30
|
-
* Parking zones Prague
|
|
31
|
-
* - store tariff data for parking zones in Prague.
|
|
32
|
-
*/
|
|
33
|
-
private saveParkingZonesTariffsPrague;
|
|
34
|
-
/**
|
|
35
|
-
* Parking zones Prague queue worker method
|
|
36
|
-
* - store all data for parking zones in Prague.
|
|
37
|
-
*/
|
|
38
|
-
saveParkingZonesPrague: () => Promise<void>;
|
|
39
16
|
/**
|
|
40
17
|
* Parking lots Prague queue worker method
|
|
41
18
|
* - store all data for parking lots in Prague.
|
|
@@ -8,89 +8,29 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
12
|
exports.ParkingsWorker = void 0;
|
|
16
|
-
const LocationBuilderHelper_1 = require("./helpers/LocationBuilderHelper");
|
|
17
|
-
const ParkingsLocationRepository_1 = require("./repositories/ParkingsLocationRepository");
|
|
18
|
-
const ParkingsRepository_1 = require("./repositories/ParkingsRepository");
|
|
19
|
-
const ParkingTariffsRepository_1 = require("./repositories/ParkingTariffsRepository");
|
|
20
|
-
const IPRParkingTransformation_1 = require("./transformations/IPRParkingTransformation");
|
|
21
13
|
const ParkingLotsTransformation_1 = require("./transformations/ParkingLotsTransformation");
|
|
22
|
-
const TSKParkingTariffTransformation_1 = require("./transformations/TSKParkingTariffTransformation");
|
|
23
|
-
const TSKParkingTransformation_1 = require("./transformations/TSKParkingTransformation");
|
|
24
14
|
const UpdateAddressWorker_1 = require("./workers/UpdateAddressWorker");
|
|
25
15
|
const InputParkingLotsSchema_1 = require("../schema-definitions/datasources/InputParkingLotsSchema");
|
|
26
16
|
const ParkingMeasurementsDtoSchema_1 = require("../schema-definitions/datasources/ParkingMeasurementsDtoSchema");
|
|
27
17
|
const index_1 = require("../schema-definitions/index");
|
|
28
18
|
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
29
|
-
const config_1 = require("@golemio/core/dist/integration-engine/config");
|
|
30
19
|
const datasources_1 = require("@golemio/core/dist/integration-engine/datasources");
|
|
20
|
+
const ContainerToken_1 = require("@golemio/core/dist/integration-engine/ioc/ContainerToken");
|
|
31
21
|
const models_1 = require("@golemio/core/dist/integration-engine/models");
|
|
32
22
|
const workers_1 = require("@golemio/core/dist/integration-engine/workers");
|
|
33
23
|
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
34
24
|
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
35
|
-
const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
|
|
36
|
-
const _1 = require("./");
|
|
37
25
|
const StaticParkingLotsGeoDataSourceFactory_1 = require("./datasources/StaticParkingLotsGeoDataSourceFactory");
|
|
26
|
+
const Di_1 = require("./ioc/Di");
|
|
27
|
+
const ModuleContainerToken_1 = require("./ioc/ModuleContainerToken");
|
|
38
28
|
const TskAverageOccupancyRepository_1 = require("./repositories/TskAverageOccupancyRepository");
|
|
29
|
+
const KoridParkingConfigTransformation_1 = require("./transformations/KoridParkingConfigTransformation");
|
|
30
|
+
const KoridParkingDataTransformation_1 = require("./transformations/KoridParkingDataTransformation");
|
|
39
31
|
class ParkingsWorker extends workers_1.BaseWorker {
|
|
40
32
|
constructor() {
|
|
41
33
|
super();
|
|
42
|
-
/**
|
|
43
|
-
* Parking zones Prague
|
|
44
|
-
* - store location data for parking zones in Prague.
|
|
45
|
-
* - merged TSK and IPR data sources
|
|
46
|
-
*/
|
|
47
|
-
this.saveParkingZonesLocationsPrague = () => __awaiter(this, void 0, void 0, function* () {
|
|
48
|
-
this.ftpTSKSettings.filename = `Area_${(0, moment_timezone_1.default)().format("YYYY-MM-DD")}.json`;
|
|
49
|
-
this.dataSourceTSK.protocolStrategy.setConnectionSettings(this.ftpTSKSettings);
|
|
50
|
-
const dataTSK = yield this.dataSourceTSK.getAll();
|
|
51
|
-
const transformedTSKData = yield this.tskTransformation.transform(dataTSK.data);
|
|
52
|
-
const dataIPR = yield this.dataSourceIPR.getAll();
|
|
53
|
-
const transformedIPRData = yield this.iprTransformation.transform(dataIPR);
|
|
54
|
-
const result = yield (0, LocationBuilderHelper_1.mergeParkingZoneDataSets)(transformedTSKData, transformedIPRData);
|
|
55
|
-
yield this.parkingsModel.save(result.parking);
|
|
56
|
-
yield this.parkingsLocationModel.save(result.locations);
|
|
57
|
-
for (const item of result.parking) {
|
|
58
|
-
yield integration_engine_1.QueueManager.sendMessageToExchange(config_1.config.RABBIT_EXCHANGE_NAME + "." + UpdateAddressWorker_1.UpdateAddressWorker.workerName.toLowerCase(), "updateAddress", {
|
|
59
|
-
id: item.id,
|
|
60
|
-
point: item.centroid,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
for (const item of result.locations) {
|
|
64
|
-
yield integration_engine_1.QueueManager.sendMessageToExchange(config_1.config.RABBIT_EXCHANGE_NAME + "." + UpdateAddressWorker_1.UpdateAddressWorker.workerName.toLowerCase(), "updateLocationAddress", {
|
|
65
|
-
id: item.id,
|
|
66
|
-
point: item.centroid,
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
/**
|
|
71
|
-
* Parking zones Prague
|
|
72
|
-
* - store tariff data for parking zones in Prague.
|
|
73
|
-
*/
|
|
74
|
-
this.saveParkingZonesTariffsPrague = () => __awaiter(this, void 0, void 0, function* () {
|
|
75
|
-
this.ftpTSKSettings.filename = `Tarif_${(0, moment_timezone_1.default)().format("YYYY-MM-DD")}.tsv`;
|
|
76
|
-
this.dataSourceTariffTSK.protocolStrategy.setConnectionSettings(this.ftpTSKSettings);
|
|
77
|
-
const dataTSK = yield this.dataSourceTariffTSK.getAll();
|
|
78
|
-
const transformedTSKData = yield this.tskTariffTransformation.transform({
|
|
79
|
-
tsk: dataTSK.data,
|
|
80
|
-
lastUpdated: this.transformationDate,
|
|
81
|
-
});
|
|
82
|
-
yield this.parkingsTariffsModel.deleteByTariffIds(transformedTSKData);
|
|
83
|
-
yield this.parkingsTariffsModel.save(transformedTSKData);
|
|
84
|
-
});
|
|
85
|
-
/**
|
|
86
|
-
* Parking zones Prague queue worker method
|
|
87
|
-
* - store all data for parking zones in Prague.
|
|
88
|
-
*/
|
|
89
|
-
this.saveParkingZonesPrague = () => __awaiter(this, void 0, void 0, function* () {
|
|
90
|
-
yield this.saveParkingZonesLocationsPrague();
|
|
91
|
-
yield this.saveParkingZonesTariffsPrague();
|
|
92
|
-
yield this.redisModel.truncate(false);
|
|
93
|
-
});
|
|
94
34
|
/**
|
|
95
35
|
* Parking lots Prague queue worker method
|
|
96
36
|
* - store all data for parking lots in Prague.
|
|
@@ -101,16 +41,16 @@ class ParkingsWorker extends workers_1.BaseWorker {
|
|
|
101
41
|
try {
|
|
102
42
|
// "optional" datasource enhancing geo locations
|
|
103
43
|
// objectively the datasource is static data maitained by IPT
|
|
104
|
-
staticGeoData = (yield StaticParkingLotsGeoDataSourceFactory_1.StaticParkingLotsGeoDataSourceFactory.getDataSource(
|
|
44
|
+
staticGeoData = (yield StaticParkingLotsGeoDataSourceFactory_1.StaticParkingLotsGeoDataSourceFactory.getDataSource(this.config.datasources.StaticParkingLotsGeoSourceUrl).getAll()).features;
|
|
105
45
|
}
|
|
106
46
|
catch (err) {
|
|
107
|
-
|
|
47
|
+
this.logger.error(`Error while getting static parking lots geo: ${err.message}`);
|
|
108
48
|
}
|
|
109
49
|
const { geo: geoData } = yield this.parkingLotsTransformation.transform(data, staticGeoData);
|
|
110
50
|
yield this.parkingsModel.save(geoData);
|
|
111
51
|
yield this.redisModel.truncate(false);
|
|
112
52
|
for (const item of geoData) {
|
|
113
|
-
yield integration_engine_1.QueueManager.sendMessageToExchange(
|
|
53
|
+
yield integration_engine_1.QueueManager.sendMessageToExchange(this.config.RABBIT_EXCHANGE_NAME + "." + UpdateAddressWorker_1.UpdateAddressWorker.workerName.toLowerCase(), "updateAddress", {
|
|
114
54
|
id: item.id,
|
|
115
55
|
point: item.centroid,
|
|
116
56
|
});
|
|
@@ -135,7 +75,7 @@ class ParkingsWorker extends workers_1.BaseWorker {
|
|
|
135
75
|
yield this.parkingsModel.save(transformedData.geo);
|
|
136
76
|
yield this.parkingsTariffsModel.save(transformedData.tariff);
|
|
137
77
|
for (const item of transformedData.geo) {
|
|
138
|
-
yield integration_engine_1.QueueManager.sendMessageToExchange(
|
|
78
|
+
yield integration_engine_1.QueueManager.sendMessageToExchange(this.config.RABBIT_EXCHANGE_NAME + "." + UpdateAddressWorker_1.UpdateAddressWorker.workerName.toLowerCase(), "updateAddress", {
|
|
139
79
|
id: item.id,
|
|
140
80
|
point: item.centroid,
|
|
141
81
|
});
|
|
@@ -161,47 +101,19 @@ class ParkingsWorker extends workers_1.BaseWorker {
|
|
|
161
101
|
throw new golemio_errors_1.CustomError("refreshTskOccupancyView: error while refreshing TSK average occupancy view", true, this.constructor.name, undefined, err);
|
|
162
102
|
}
|
|
163
103
|
});
|
|
164
|
-
|
|
165
|
-
this.
|
|
104
|
+
this.config = Di_1.ParkingsContainer.resolve(ContainerToken_1.ContainerToken.Config);
|
|
105
|
+
this.logger = Di_1.ParkingsContainer.resolve(ContainerToken_1.ContainerToken.Logger);
|
|
166
106
|
const dataTypeStrategy = new datasources_1.JSONDataTypeStrategy({ resultsPath: "results" });
|
|
167
107
|
// filter items with lastUpdated lower than two days
|
|
168
108
|
dataTypeStrategy.setFilter((item) => item.lastUpdated > new Date().getTime() - 2 * 24 * 60 * 60 * 1000);
|
|
169
109
|
this.dataSource = new datasources_1.DataSource(index_1.Parkings.name + "DataSource", new datasources_1.HTTPProtocolStrategy({
|
|
170
110
|
headers: {},
|
|
171
111
|
method: "GET",
|
|
172
|
-
url:
|
|
112
|
+
url: this.config.datasources.TSKParkings,
|
|
173
113
|
}), dataTypeStrategy, new golemio_validator_1.JSONSchemaValidator(index_1.Parkings.name + "DataSource", InputParkingLotsSchema_1.InputParkingLotsSchema));
|
|
174
|
-
const strategyIPR = new datasources_1.JSONDataTypeStrategy({ resultsPath: "features" });
|
|
175
|
-
strategyIPR.setFilter((item) => item.properties.TARIFTAB);
|
|
176
|
-
this.dataSourceIPR = new datasources_1.DataSource(index_1.Parkings.ipr.name + "DataSource", new datasources_1.HTTPProtocolStrategy({
|
|
177
|
-
headers: {},
|
|
178
|
-
method: "GET",
|
|
179
|
-
url: config_1.config.datasources.ParkingZones,
|
|
180
|
-
}), strategyIPR, new golemio_validator_1.JSONSchemaValidator(index_1.Parkings.ipr.name + "DataSource", index_1.Parkings.ipr.datasourceJsonSchema));
|
|
181
|
-
this.ftpTSKSettings = {
|
|
182
|
-
filename: "",
|
|
183
|
-
path: config_1.config.datasources.TSKFTPParkingZonesPath,
|
|
184
|
-
url: {
|
|
185
|
-
host: config_1.config.datasources.TSKFTP.host,
|
|
186
|
-
port: config_1.config.datasources.TSKFTP.port,
|
|
187
|
-
user: config_1.config.datasources.TSKFTP.user,
|
|
188
|
-
password: config_1.config.datasources.TSKFTP.password,
|
|
189
|
-
},
|
|
190
|
-
encoding: "utf8",
|
|
191
|
-
};
|
|
192
|
-
this.dataSourceTSK = new datasources_1.DataSource(index_1.Parkings.tsk.name + "DataSource", new datasources_1.FTPProtocolStrategy(this.ftpTSKSettings), new datasources_1.JSONDataTypeStrategy({ resultsPath: "features" }), new golemio_validator_1.JSONSchemaValidator(index_1.Parkings.tsk.name + "DataSource", index_1.Parkings.tsk.datasourceGeoJsonSchema));
|
|
193
|
-
this.dataSourceTariffTSK = new datasources_1.DataSource(index_1.Parkings.tsk.name + "DataSource", new datasources_1.FTPProtocolStrategy(this.ftpTSKSettings), new datasources_1.CSVDataTypeStrategy({
|
|
194
|
-
fastcsvParams: { delimiter: "\t", headers: true },
|
|
195
|
-
subscribe: (json) => json,
|
|
196
|
-
}), new golemio_validator_1.JSONSchemaValidator(index_1.Parkings.tsk.name + "DataSource", index_1.Parkings.tsk.datasourceTariffJsonSchema));
|
|
197
|
-
this.iprTransformation = new IPRParkingTransformation_1.IPRParkingTransformation();
|
|
198
|
-
this.tskTransformation = new TSKParkingTransformation_1.TSKParkingTransformation(transformationDate);
|
|
199
|
-
this.tskTariffTransformation = new TSKParkingTariffTransformation_1.TSKParkingTariffTransformation();
|
|
200
114
|
this.parkingLotsTransformation = new ParkingLotsTransformation_1.ParkingLotsTransformation();
|
|
201
|
-
this.koridParkingConfigTransformation = new
|
|
202
|
-
this.koridParkingDataTransformation = new
|
|
203
|
-
this.parkingsModel = new ParkingsRepository_1.ParkingsRepository();
|
|
204
|
-
this.parkingsLocationModel = new ParkingsLocationRepository_1.ParkingsLocationRepository();
|
|
115
|
+
this.koridParkingConfigTransformation = new KoridParkingConfigTransformation_1.KoridParkingConfigTransformation();
|
|
116
|
+
this.koridParkingDataTransformation = new KoridParkingDataTransformation_1.KoridParkingDataTransformation();
|
|
205
117
|
this.parkingsMeasurementsModel = new models_1.PostgresModel(index_1.Parkings.measurements.name + "Model", {
|
|
206
118
|
outputSequelizeAttributes: index_1.Parkings.measurements.outputSequelizeAttributes,
|
|
207
119
|
pgSchema: index_1.Parkings.pgSchema,
|
|
@@ -214,12 +126,10 @@ class ParkingsWorker extends workers_1.BaseWorker {
|
|
|
214
126
|
pgTableName: index_1.Parkings.measurementsActual.pgTableName,
|
|
215
127
|
savingType: "insertOrUpdate",
|
|
216
128
|
}, new golemio_validator_1.JSONSchemaValidator(index_1.Parkings.measurementsActual.name + "PgModelValidator", ParkingMeasurementsDtoSchema_1.ParkingMeasurementsDtoSchema));
|
|
217
|
-
this.parkingsTariffsModel = new ParkingTariffsRepository_1.ParkingTariffsRepository();
|
|
218
129
|
this.tskAverageOccupancyRepository = new TskAverageOccupancyRepository_1.TskAverageOccupancyRepository();
|
|
219
|
-
this.redisModel =
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
});
|
|
130
|
+
this.redisModel = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.RedisModel);
|
|
131
|
+
this.parkingsModel = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingsRepository);
|
|
132
|
+
this.parkingsTariffsModel = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingTariffsRepository);
|
|
223
133
|
}
|
|
224
134
|
}
|
|
225
135
|
exports.ParkingsWorker = ParkingsWorker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParkingsWorker.js","sourceRoot":"","sources":["../../src/integration-engine/ParkingsWorker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ParkingsWorker.js","sourceRoot":"","sources":["../../src/integration-engine/ParkingsWorker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ITariffChecker } from "./interfaces/ITariffChecker";
|
|
2
|
+
import { ITariffCheckerResult } from "./interfaces/ITariffCheckerResult";
|
|
3
|
+
import { RuleEnum } from "./rules/RuleEnum";
|
|
4
|
+
import RuleFactory from "./rules/RuleFactory";
|
|
5
|
+
export declare abstract class AbstractTariffChecker<T> implements ITariffChecker {
|
|
6
|
+
protected abstract ruleList: RuleEnum[];
|
|
7
|
+
protected ruleFactory: RuleFactory;
|
|
8
|
+
constructor();
|
|
9
|
+
isTariffValid(tariffInfo: T): ITariffCheckerResult<T>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AbstractTariffChecker = void 0;
|
|
7
|
+
const RuleFactory_1 = __importDefault(require("./rules/RuleFactory"));
|
|
8
|
+
class AbstractTariffChecker {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.ruleFactory = new RuleFactory_1.default();
|
|
11
|
+
}
|
|
12
|
+
isTariffValid(tariffInfo) {
|
|
13
|
+
for (const ruleType of this.ruleList) {
|
|
14
|
+
if (!this.ruleFactory.get(ruleType).isValid(tariffInfo)) {
|
|
15
|
+
return {
|
|
16
|
+
isValid: false,
|
|
17
|
+
failedRule: ruleType,
|
|
18
|
+
failedInput: tariffInfo,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return { isValid: true };
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.AbstractTariffChecker = AbstractTariffChecker;
|
|
26
|
+
//# sourceMappingURL=AbstractTariffChecker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractTariffChecker.js","sourceRoot":"","sources":["../../../src/integration-engine/businessRules/AbstractTariffChecker.ts"],"names":[],"mappings":";;;;;;AAGA,sEAA8C;AAE9C,MAAsB,qBAAqB;IAIvC;QACI,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAW,EAAE,CAAC;IACzC,CAAC;IAEM,aAAa,CAAC,UAAa;QAC9B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBACrD,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,QAAQ;oBACpB,WAAW,EAAE,UAAU;iBAC1B,CAAC;aACL;SACJ;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;CACJ;AArBD,sDAqBC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TariffCheckerEnum = void 0;
|
|
4
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
5
|
+
const TskTariffChecker_1 = require("./TskTariffChecker");
|
|
6
|
+
var TariffCheckerEnum;
|
|
7
|
+
(function (TariffCheckerEnum) {
|
|
8
|
+
TariffCheckerEnum["TSK"] = "tsk";
|
|
9
|
+
})(TariffCheckerEnum = exports.TariffCheckerEnum || (exports.TariffCheckerEnum = {}));
|
|
10
|
+
class TariffCheckerFactory {
|
|
11
|
+
constructor() { }
|
|
12
|
+
static get(checkerType) {
|
|
13
|
+
switch (checkerType) {
|
|
14
|
+
case TariffCheckerEnum.TSK:
|
|
15
|
+
return new TskTariffChecker_1.TskTariffChecker();
|
|
16
|
+
default:
|
|
17
|
+
throw new golemio_errors_1.CustomError(`Unexpected type: '${checkerType}' in a TariffCheckerFactory.`, true, TariffCheckerFactory.name);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.default = TariffCheckerFactory;
|
|
22
|
+
//# sourceMappingURL=TariffCheckerFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TariffCheckerFactory.js","sourceRoot":"","sources":["../../../src/integration-engine/businessRules/TariffCheckerFactory.ts"],"names":[],"mappings":";;;AAAA,6EAAuE;AACvE,yDAAsD;AAEtD,IAAY,iBAEX;AAFD,WAAY,iBAAiB;IACzB,gCAAW,CAAA;AACf,CAAC,EAFW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAE5B;AAED,MAAqB,oBAAoB;IACrC,gBAAe,CAAC;IAET,MAAM,CAAC,GAAG,CAAC,WAA8B;QAC5C,QAAQ,WAAW,EAAE;YACjB,KAAK,iBAAiB,CAAC,GAAG;gBACtB,OAAO,IAAI,mCAAgB,EAAE,CAAC;YAClC;gBACI,MAAM,IAAI,4BAAW,CACjB,qBAAqB,WAAW,8BAA8B,EAC9D,IAAI,EACJ,oBAAoB,CAAC,IAAI,CAC5B,CAAC;SACT;IACL,CAAC;CACJ;AAfD,uCAeC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AbstractTariffChecker } from "./AbstractTariffChecker";
|
|
2
|
+
import { ITariffInfo } from "./interfaces/ITariffInfo";
|
|
3
|
+
import { RuleEnum } from "./rules/RuleEnum";
|
|
4
|
+
export declare class TskTariffChecker extends AbstractTariffChecker<ITariffInfo> {
|
|
5
|
+
protected ruleList: RuleEnum[];
|
|
6
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TskTariffChecker = void 0;
|
|
4
|
+
const AbstractTariffChecker_1 = require("./AbstractTariffChecker");
|
|
5
|
+
const RuleEnum_1 = require("./rules/RuleEnum");
|
|
6
|
+
class TskTariffChecker extends AbstractTariffChecker_1.AbstractTariffChecker {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.ruleList = [RuleEnum_1.RuleEnum.ZeroMaxParkingTime, RuleEnum_1.RuleEnum.MaxChargeIterationsRule, RuleEnum_1.RuleEnum.MaxPriceRule];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.TskTariffChecker = TskTariffChecker;
|
|
13
|
+
//# sourceMappingURL=TskTariffChecker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TskTariffChecker.js","sourceRoot":"","sources":["../../../src/integration-engine/businessRules/TskTariffChecker.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAEhE,+CAA4C;AAE5C,MAAa,gBAAiB,SAAQ,6CAAkC;IAAxE;;QACc,aAAQ,GAAG,CAAC,mBAAQ,CAAC,kBAAkB,EAAE,mBAAQ,CAAC,uBAAuB,EAAE,mBAAQ,CAAC,YAAY,CAAC,CAAC;IAChH,CAAC;CAAA;AAFD,4CAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITariffChecker.js","sourceRoot":"","sources":["../../../../src/integration-engine/businessRules/interfaces/ITariffChecker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITariffCheckerResult.js","sourceRoot":"","sources":["../../../../src/integration-engine/businessRules/interfaces/ITariffCheckerResult.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITariffInfo.js","sourceRoot":"","sources":["../../../../src/integration-engine/businessRules/interfaces/ITariffInfo.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IRule.js","sourceRoot":"","sources":["../../../../src/integration-engine/businessRules/rules/IRule.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MaxChargeIterationsRule = void 0;
|
|
4
|
+
const TskCalculationHelper_1 = require("../../helpers/TskCalculationHelper");
|
|
5
|
+
class MaxChargeIterationsRule {
|
|
6
|
+
isValid(tariffInfo) {
|
|
7
|
+
if (tariffInfo.maxParkingTime === undefined ||
|
|
8
|
+
tariffInfo.pricePerHour === undefined ||
|
|
9
|
+
tariffInfo.minPrice === undefined) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
const maxChargeIterations = TskCalculationHelper_1.TskCalculationHelper.getMaxChargeIterations(tariffInfo.maxParkingTime, tariffInfo.minPrice, tariffInfo.pricePerHour);
|
|
13
|
+
return Math.round(maxChargeIterations) === maxChargeIterations;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.MaxChargeIterationsRule = MaxChargeIterationsRule;
|
|
17
|
+
//# sourceMappingURL=MaxChargeInteractionsRule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaxChargeInteractionsRule.js","sourceRoot":"","sources":["../../../../src/integration-engine/businessRules/rules/MaxChargeInteractionsRule.ts"],"names":[],"mappings":";;;AAAA,6EAAwE;AAIxE,MAAa,uBAAuB;IACzB,OAAO,CAAC,UAAuB;QAClC,IACI,UAAU,CAAC,cAAc,KAAK,SAAS;YACvC,UAAU,CAAC,YAAY,KAAK,SAAS;YACrC,UAAU,CAAC,QAAQ,KAAK,SAAS,EACnC;YACE,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,mBAAmB,GAAG,2CAAoB,CAAC,sBAAsB,CACnE,UAAU,CAAC,cAAc,EACzB,UAAU,CAAC,QAAQ,EACnB,UAAU,CAAC,YAAY,CAC1B,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,mBAAmB,CAAC;IACnE,CAAC;CACJ;AAlBD,0DAkBC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MaxPriceRule = void 0;
|
|
4
|
+
class MaxPriceRule {
|
|
5
|
+
isValid(tariffInfo) {
|
|
6
|
+
if (tariffInfo.pricePerHour === undefined ||
|
|
7
|
+
tariffInfo.maxParkingTime === undefined ||
|
|
8
|
+
tariffInfo.maxPrice === undefined) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
return !(tariffInfo.pricePerHour * tariffInfo.maxParkingTime < tariffInfo.maxPrice);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.MaxPriceRule = MaxPriceRule;
|
|
15
|
+
//# sourceMappingURL=MaxPriceRule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaxPriceRule.js","sourceRoot":"","sources":["../../../../src/integration-engine/businessRules/rules/MaxPriceRule.ts"],"names":[],"mappings":";;;AAGA,MAAa,YAAY;IACd,OAAO,CAAC,UAAuB;QAClC,IACI,UAAU,CAAC,YAAY,KAAK,SAAS;YACrC,UAAU,CAAC,cAAc,KAAK,SAAS;YACvC,UAAU,CAAC,QAAQ,KAAK,SAAS,EACnC;YACE,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,CAAC,CAAC,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACxF,CAAC;CACJ;AAZD,oCAYC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RuleEnum = void 0;
|
|
4
|
+
var RuleEnum;
|
|
5
|
+
(function (RuleEnum) {
|
|
6
|
+
RuleEnum["MaxPriceRule"] = "MaxPriceRule";
|
|
7
|
+
RuleEnum["MaxChargeIterationsRule"] = "MaxChargeIterationsRule";
|
|
8
|
+
RuleEnum["ZeroMaxParkingTime"] = "ZeroMaxParkingTime";
|
|
9
|
+
})(RuleEnum = exports.RuleEnum || (exports.RuleEnum = {}));
|
|
10
|
+
//# sourceMappingURL=RuleEnum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuleEnum.js","sourceRoot":"","sources":["../../../../src/integration-engine/businessRules/rules/RuleEnum.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,yCAA6B,CAAA;IAC7B,+DAAmD,CAAA;IACnD,qDAAyC,CAAA;AAC7C,CAAC,EAJW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAInB"}
|