@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.
Files changed (78) hide show
  1. package/db/example/00_clear_test_data.sql +1 -0
  2. package/db/migrations/postgresql/20230504110450-business-errors.js +53 -0
  3. package/db/migrations/postgresql/sqls/20230504110450-business-errors-down.sql +1 -0
  4. package/db/migrations/postgresql/sqls/20230504110450-business-errors-up.sql +8 -0
  5. package/dist/integration-engine/ParkingsWorker.d.ts +2 -25
  6. package/dist/integration-engine/ParkingsWorker.js +17 -107
  7. package/dist/integration-engine/ParkingsWorker.js.map +1 -1
  8. package/dist/integration-engine/businessRules/AbstractTariffChecker.d.ts +10 -0
  9. package/dist/integration-engine/businessRules/AbstractTariffChecker.js +26 -0
  10. package/dist/integration-engine/businessRules/AbstractTariffChecker.js.map +1 -0
  11. package/dist/integration-engine/businessRules/TariffCheckerFactory.d.ts +8 -0
  12. package/dist/integration-engine/businessRules/TariffCheckerFactory.js +22 -0
  13. package/dist/integration-engine/businessRules/TariffCheckerFactory.js.map +1 -0
  14. package/dist/integration-engine/businessRules/TskTariffChecker.d.ts +6 -0
  15. package/dist/integration-engine/businessRules/TskTariffChecker.js +13 -0
  16. package/dist/integration-engine/businessRules/TskTariffChecker.js.map +1 -0
  17. package/dist/integration-engine/businessRules/interfaces/ITariffChecker.d.ts +4 -0
  18. package/dist/integration-engine/businessRules/interfaces/ITariffChecker.js +3 -0
  19. package/dist/integration-engine/businessRules/interfaces/ITariffChecker.js.map +1 -0
  20. package/dist/integration-engine/businessRules/interfaces/ITariffCheckerResult.d.ts +6 -0
  21. package/dist/integration-engine/businessRules/interfaces/ITariffCheckerResult.js +3 -0
  22. package/dist/integration-engine/businessRules/interfaces/ITariffCheckerResult.js.map +1 -0
  23. package/dist/integration-engine/businessRules/interfaces/ITariffInfo.d.ts +7 -0
  24. package/dist/integration-engine/businessRules/interfaces/ITariffInfo.js +3 -0
  25. package/dist/integration-engine/businessRules/interfaces/ITariffInfo.js.map +1 -0
  26. package/dist/integration-engine/businessRules/rules/IRule.d.ts +3 -0
  27. package/dist/integration-engine/businessRules/rules/IRule.js +3 -0
  28. package/dist/integration-engine/businessRules/rules/IRule.js.map +1 -0
  29. package/dist/integration-engine/businessRules/rules/MaxChargeInteractionsRule.d.ts +5 -0
  30. package/dist/integration-engine/businessRules/rules/MaxChargeInteractionsRule.js +17 -0
  31. package/dist/integration-engine/businessRules/rules/MaxChargeInteractionsRule.js.map +1 -0
  32. package/dist/integration-engine/businessRules/rules/MaxPriceRule.d.ts +5 -0
  33. package/dist/integration-engine/businessRules/rules/MaxPriceRule.js +15 -0
  34. package/dist/integration-engine/businessRules/rules/MaxPriceRule.js.map +1 -0
  35. package/dist/integration-engine/businessRules/rules/RuleEnum.d.ts +5 -0
  36. package/dist/integration-engine/businessRules/rules/RuleEnum.js +10 -0
  37. package/dist/integration-engine/businessRules/rules/RuleEnum.js.map +1 -0
  38. package/dist/integration-engine/businessRules/rules/RuleFactory.d.ts +7 -0
  39. package/dist/integration-engine/businessRules/rules/RuleFactory.js +23 -0
  40. package/dist/integration-engine/businessRules/rules/RuleFactory.js.map +1 -0
  41. package/dist/integration-engine/businessRules/rules/ZeroMaxParkingTime.d.ts +5 -0
  42. package/dist/integration-engine/businessRules/rules/ZeroMaxParkingTime.js +10 -0
  43. package/dist/integration-engine/businessRules/rules/ZeroMaxParkingTime.js.map +1 -0
  44. package/dist/integration-engine/helpers/TskCalculationHelper.d.ts +6 -0
  45. package/dist/integration-engine/helpers/TskCalculationHelper.js +36 -0
  46. package/dist/integration-engine/helpers/TskCalculationHelper.js.map +1 -0
  47. package/dist/integration-engine/index.d.ts +2 -1
  48. package/dist/integration-engine/index.js +2 -1
  49. package/dist/integration-engine/index.js.map +1 -1
  50. package/dist/integration-engine/ioc/Di.d.ts +2 -0
  51. package/dist/integration-engine/ioc/Di.js +28 -0
  52. package/dist/integration-engine/ioc/Di.js.map +1 -0
  53. package/dist/integration-engine/ioc/ModuleContainerToken.d.ts +8 -0
  54. package/dist/integration-engine/ioc/ModuleContainerToken.js +12 -0
  55. package/dist/integration-engine/ioc/ModuleContainerToken.js.map +1 -0
  56. package/dist/integration-engine/queueDefinitions.js +0 -9
  57. package/dist/integration-engine/queueDefinitions.js.map +1 -1
  58. package/dist/integration-engine/repositories/ParkingsBusinessErrorsRepository.d.ts +7 -0
  59. package/dist/integration-engine/repositories/ParkingsBusinessErrorsRepository.js +35 -0
  60. package/dist/integration-engine/repositories/ParkingsBusinessErrorsRepository.js.map +1 -0
  61. package/dist/integration-engine/repositories/redis/ParkingsRedisModel.d.ts +4 -0
  62. package/dist/integration-engine/repositories/redis/ParkingsRedisModel.js +15 -0
  63. package/dist/integration-engine/repositories/redis/ParkingsRedisModel.js.map +1 -0
  64. package/dist/integration-engine/transformations/TSKParkingTariffTransformation.js +4 -9
  65. package/dist/integration-engine/transformations/TSKParkingTariffTransformation.js.map +1 -1
  66. package/dist/integration-engine/workers/NewParkingsWorker.d.ts +5 -0
  67. package/dist/integration-engine/workers/NewParkingsWorker.js +14 -0
  68. package/dist/integration-engine/workers/NewParkingsWorker.js.map +1 -0
  69. package/dist/integration-engine/workers/tasks/SaveParkingZonesPrague.d.ts +37 -0
  70. package/dist/integration-engine/workers/tasks/SaveParkingZonesPrague.js +191 -0
  71. package/dist/integration-engine/workers/tasks/SaveParkingZonesPrague.js.map +1 -0
  72. package/dist/schema-definitions/models/BusinessError.d.ts +12 -0
  73. package/dist/schema-definitions/models/BusinessError.js +30 -0
  74. package/dist/schema-definitions/models/BusinessError.js.map +1 -0
  75. package/dist/schema-definitions/models/interfaces/IBusinessError.d.ts +7 -0
  76. package/dist/schema-definitions/models/interfaces/IBusinessError.js +3 -0
  77. package/dist/schema-definitions/models/interfaces/IBusinessError.js.map +1 -0
  78. package/package.json +2 -2
@@ -4,3 +4,4 @@ DELETE FROM parkings_measurements_part;
4
4
  DELETE FROM parkings_location;
5
5
  DELETE FROM parkings;
6
6
  DELETE FROM common.citydistricts where district_name_slug = 'praha-10';
7
+ truncate table parkings_business_errors;
@@ -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(config_1.config.datasources.StaticParkingLotsGeoSourceUrl).getAll()).features;
44
+ staticGeoData = (yield StaticParkingLotsGeoDataSourceFactory_1.StaticParkingLotsGeoDataSourceFactory.getDataSource(this.config.datasources.StaticParkingLotsGeoSourceUrl).getAll()).features;
105
45
  }
106
46
  catch (err) {
107
- integration_engine_1.log.error(`Error while getting static parking lots geo: ${err.message}`);
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(config_1.config.RABBIT_EXCHANGE_NAME + "." + UpdateAddressWorker_1.UpdateAddressWorker.workerName.toLowerCase(), "updateAddress", {
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(config_1.config.RABBIT_EXCHANGE_NAME + "." + UpdateAddressWorker_1.UpdateAddressWorker.workerName.toLowerCase(), "updateAddress", {
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
- const transformationDate = new Date();
165
- this.transformationDate = transformationDate;
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: config_1.config.datasources.TSKParkings,
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 _1.KoridParkingConfigTransformation();
202
- this.koridParkingDataTransformation = new _1.KoridParkingDataTransformation();
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 = new models_1.RedisModel(index_1.Parkings.name + "Model", {
220
- isKeyConstructedFromData: false,
221
- prefix: "/parking",
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":"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"}
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,8 @@
1
+ import { TskTariffChecker } from "./TskTariffChecker";
2
+ export declare enum TariffCheckerEnum {
3
+ TSK = "tsk"
4
+ }
5
+ export default class TariffCheckerFactory {
6
+ constructor();
7
+ static get(checkerType: TariffCheckerEnum): TskTariffChecker;
8
+ }
@@ -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,4 @@
1
+ import { ITariffCheckerResult } from "./ITariffCheckerResult";
2
+ export interface ITariffChecker {
3
+ isTariffValid(tariffInfo: any): ITariffCheckerResult<any>;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ITariffChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITariffChecker.js","sourceRoot":"","sources":["../../../../src/integration-engine/businessRules/interfaces/ITariffChecker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { RuleEnum } from "../rules/RuleEnum";
2
+ export interface ITariffCheckerResult<T> {
3
+ isValid: boolean;
4
+ failedRule?: RuleEnum;
5
+ failedInput?: T;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ITariffCheckerResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITariffCheckerResult.js","sourceRoot":"","sources":["../../../../src/integration-engine/businessRules/interfaces/ITariffCheckerResult.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export interface ITariffInfo {
2
+ cTariff?: number;
3
+ pricePerHour?: number;
4
+ maxParkingTime?: number;
5
+ maxPrice?: number;
6
+ minPrice?: number;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ITariffInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITariffInfo.js","sourceRoot":"","sources":["../../../../src/integration-engine/businessRules/interfaces/ITariffInfo.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export interface IRule<T> {
2
+ isValid(params: T): boolean;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IRule.js","sourceRoot":"","sources":["../../../../src/integration-engine/businessRules/rules/IRule.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { ITariffInfo } from "../interfaces/ITariffInfo";
2
+ import { IRule } from "./IRule";
3
+ export declare class MaxChargeIterationsRule implements IRule<ITariffInfo> {
4
+ isValid(tariffInfo: ITariffInfo): boolean;
5
+ }
@@ -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,5 @@
1
+ import { ITariffInfo } from "../interfaces/ITariffInfo";
2
+ import { IRule } from "./IRule";
3
+ export declare class MaxPriceRule implements IRule<ITariffInfo> {
4
+ isValid(tariffInfo: ITariffInfo): boolean;
5
+ }
@@ -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,5 @@
1
+ export declare enum RuleEnum {
2
+ MaxPriceRule = "MaxPriceRule",
3
+ MaxChargeIterationsRule = "MaxChargeIterationsRule",
4
+ ZeroMaxParkingTime = "ZeroMaxParkingTime"
5
+ }
@@ -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"}
@@ -0,0 +1,7 @@
1
+ import { IRule } from "./IRule";
2
+ import { RuleEnum } from "./RuleEnum";
3
+ export default class RuleFactory {
4
+ private instances;
5
+ constructor();
6
+ get(ruleType: RuleEnum): IRule<any>;
7
+ }