@golemio/parkings 1.4.9 → 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 +1 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
4
|
+
const MaxChargeInteractionsRule_1 = require("./MaxChargeInteractionsRule");
|
|
5
|
+
const MaxPriceRule_1 = require("./MaxPriceRule");
|
|
6
|
+
const RuleEnum_1 = require("./RuleEnum");
|
|
7
|
+
const ZeroMaxParkingTime_1 = require("./ZeroMaxParkingTime");
|
|
8
|
+
class RuleFactory {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.instances = new Map();
|
|
11
|
+
this.instances.set(RuleEnum_1.RuleEnum.MaxChargeIterationsRule, new MaxChargeInteractionsRule_1.MaxChargeIterationsRule());
|
|
12
|
+
this.instances.set(RuleEnum_1.RuleEnum.MaxPriceRule, new MaxPriceRule_1.MaxPriceRule());
|
|
13
|
+
this.instances.set(RuleEnum_1.RuleEnum.ZeroMaxParkingTime, new ZeroMaxParkingTime_1.ZeroMaxParkingTime());
|
|
14
|
+
}
|
|
15
|
+
get(ruleType) {
|
|
16
|
+
if (!this.instances.has(ruleType)) {
|
|
17
|
+
throw new golemio_errors_1.CustomError(`Unable to find rule: '${ruleType.toString()}'.`, true, RuleFactory.name);
|
|
18
|
+
}
|
|
19
|
+
return this.instances.get(ruleType);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.default = RuleFactory;
|
|
23
|
+
//# sourceMappingURL=RuleFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuleFactory.js","sourceRoot":"","sources":["../../../../src/integration-engine/businessRules/rules/RuleFactory.ts"],"names":[],"mappings":";;AAAA,6EAAuE;AAEvE,2EAAsE;AACtE,iDAA8C;AAC9C,yCAAsC;AACtC,6DAA0D;AAE1D,MAAqB,WAAW;IAG5B;QACI,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAQ,CAAC,uBAAuB,EAAE,IAAI,mDAAuB,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAQ,CAAC,YAAY,EAAE,IAAI,2BAAY,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAQ,CAAC,kBAAkB,EAAE,IAAI,uCAAkB,EAAE,CAAC,CAAC;IAC9E,CAAC;IAEM,GAAG,CAAC,QAAkB;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC/B,MAAM,IAAI,4BAAW,CAAC,yBAAyB,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;SACnG;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;IACzC,CAAC;CACJ;AAjBD,8BAiBC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZeroMaxParkingTime = void 0;
|
|
4
|
+
class ZeroMaxParkingTime {
|
|
5
|
+
isValid(tariffInfo) {
|
|
6
|
+
return tariffInfo.maxParkingTime !== 0;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.ZeroMaxParkingTime = ZeroMaxParkingTime;
|
|
10
|
+
//# sourceMappingURL=ZeroMaxParkingTime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZeroMaxParkingTime.js","sourceRoot":"","sources":["../../../../src/integration-engine/businessRules/rules/ZeroMaxParkingTime.ts"],"names":[],"mappings":";;;AAGA,MAAa,kBAAkB;IACpB,OAAO,CAAC,UAAuB;QAClC,OAAO,UAAU,CAAC,cAAc,KAAK,CAAC,CAAC;IAC3C,CAAC;CACJ;AAJD,gDAIC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare class TskCalculationHelper {
|
|
2
|
+
static getMinPrice(minPrice: number, pricePerHour: number): number;
|
|
3
|
+
static getMaxChargeIterations(maxParkingTime: number, minPrice: number, pricePerHour: number): number;
|
|
4
|
+
static getChargeInterval(minPrice: number, pricePerHour: number): number;
|
|
5
|
+
static getCharge(minPrice: number, pricePerHour: number): number;
|
|
6
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TskCalculationHelper = void 0;
|
|
4
|
+
class TskCalculationHelper {
|
|
5
|
+
static getMinPrice(minPrice, pricePerHour) {
|
|
6
|
+
return minPrice === 0 ? pricePerHour : minPrice;
|
|
7
|
+
}
|
|
8
|
+
static getMaxChargeIterations(maxParkingTime, minPrice, pricePerHour) {
|
|
9
|
+
if (pricePerHour === 0) {
|
|
10
|
+
return maxParkingTime;
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
minPrice = this.getMinPrice(minPrice, pricePerHour);
|
|
14
|
+
return (maxParkingTime * pricePerHour) / minPrice;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
static getChargeInterval(minPrice, pricePerHour) {
|
|
18
|
+
if (pricePerHour === 0) {
|
|
19
|
+
return 3600;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
minPrice = this.getMinPrice(minPrice, pricePerHour);
|
|
23
|
+
return (3600 / pricePerHour) * minPrice;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
static getCharge(minPrice, pricePerHour) {
|
|
27
|
+
if (pricePerHour === 0) {
|
|
28
|
+
return 0;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
return this.getMinPrice(minPrice, pricePerHour);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.TskCalculationHelper = TskCalculationHelper;
|
|
36
|
+
//# sourceMappingURL=TskCalculationHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TskCalculationHelper.js","sourceRoot":"","sources":["../../../src/integration-engine/helpers/TskCalculationHelper.ts"],"names":[],"mappings":";;;AAAA,MAAa,oBAAoB;IACtB,MAAM,CAAC,WAAW,CAAC,QAAgB,EAAE,YAAoB;QAC5D,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;IACpD,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,cAAsB,EAAE,QAAgB,EAAE,YAAoB;QAC/F,IAAI,YAAY,KAAK,CAAC,EAAE;YACpB,OAAO,cAAc,CAAC;SACzB;aAAM;YACH,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAEpD,OAAO,CAAC,cAAc,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAC;SACrD;IACL,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,QAAgB,EAAE,YAAoB;QAClE,IAAI,YAAY,KAAK,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC;SACf;aAAM;YACH,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAEpD,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAC;SAC3C;IACL,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,QAAgB,EAAE,YAAoB;QAC1D,IAAI,YAAY,KAAK,CAAC,EAAE;YACpB,OAAO,CAAC,CAAC;SACZ;aAAM;YACH,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;SACnD;IACL,CAAC;CACJ;AAhCD,oDAgCC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { StaticTariffsWorker } from "./workers/StaticTariffsWorker";
|
|
2
2
|
import { UpdateAddressWorker } from "./workers/UpdateAddressWorker";
|
|
3
|
+
import { NewParkingsWorker } from "./workers/NewParkingsWorker";
|
|
3
4
|
export * from "./ParkingsWorker";
|
|
4
5
|
export * from "./transformations/KoridParkingDataTransformation";
|
|
5
6
|
export * from "./transformations/KoridParkingConfigTransformation";
|
|
@@ -8,4 +9,4 @@ export * from "./ZtpParkingZones/ZtpParkingZonesDataSourceFactory";
|
|
|
8
9
|
export * from "./ZtpParkingZones/ZtpParkingZonesTransformation";
|
|
9
10
|
export * from "./ZtpParkingZones/ZtpParkingZonesWorker";
|
|
10
11
|
export * from "./workers/StaticTariffsWorker";
|
|
11
|
-
export declare const workers: (typeof StaticTariffsWorker | typeof UpdateAddressWorker)[];
|
|
12
|
+
export declare const workers: (typeof StaticTariffsWorker | typeof UpdateAddressWorker | typeof NewParkingsWorker)[];
|
|
@@ -18,6 +18,7 @@ exports.workers = void 0;
|
|
|
18
18
|
/* ie/index.ts */
|
|
19
19
|
const StaticTariffsWorker_1 = require("./workers/StaticTariffsWorker");
|
|
20
20
|
const UpdateAddressWorker_1 = require("./workers/UpdateAddressWorker");
|
|
21
|
+
const NewParkingsWorker_1 = require("./workers/NewParkingsWorker");
|
|
21
22
|
__exportStar(require("./ParkingsWorker"), exports);
|
|
22
23
|
__exportStar(require("./transformations/KoridParkingDataTransformation"), exports);
|
|
23
24
|
__exportStar(require("./transformations/KoridParkingConfigTransformation"), exports);
|
|
@@ -26,5 +27,5 @@ __exportStar(require("./ZtpParkingZones/ZtpParkingZonesDataSourceFactory"), expo
|
|
|
26
27
|
__exportStar(require("./ZtpParkingZones/ZtpParkingZonesTransformation"), exports);
|
|
27
28
|
__exportStar(require("./ZtpParkingZones/ZtpParkingZonesWorker"), exports);
|
|
28
29
|
__exportStar(require("./workers/StaticTariffsWorker"), exports);
|
|
29
|
-
exports.workers = [StaticTariffsWorker_1.StaticTariffsWorker, UpdateAddressWorker_1.UpdateAddressWorker];
|
|
30
|
+
exports.workers = [StaticTariffsWorker_1.StaticTariffsWorker, UpdateAddressWorker_1.UpdateAddressWorker, NewParkingsWorker_1.NewParkingsWorker];
|
|
30
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration-engine/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iBAAiB;AACjB,uEAAsE;AACtE,uEAAsE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration-engine/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iBAAiB;AACjB,uEAAsE;AACtE,uEAAsE;AACtE,mEAAgE;AAEhE,mDAAiC;AACjC,mFAAiE;AACjE,qFAAmE;AACnE,qDAAmC;AACnC,qFAAmE;AACnE,kFAAgE;AAChE,0EAAwD;AACxD,gEAA8C;AAEjC,QAAA,OAAO,GAAG,CAAC,yCAAmB,EAAE,yCAAmB,EAAE,qCAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParkingsContainer = void 0;
|
|
4
|
+
const TskTariffChecker_1 = require("../businessRules/TskTariffChecker");
|
|
5
|
+
const ParkingTariffsRepository_1 = require("../repositories/ParkingTariffsRepository");
|
|
6
|
+
const ParkingsBusinessErrorsRepository_1 = require("../repositories/ParkingsBusinessErrorsRepository");
|
|
7
|
+
const ParkingsRepository_1 = require("../repositories/ParkingsRepository");
|
|
8
|
+
const ParkingsRedisModel_1 = require("../repositories/redis/ParkingsRedisModel");
|
|
9
|
+
const Di_1 = require("@golemio/core/dist/integration-engine/ioc/Di");
|
|
10
|
+
const ModuleContainerToken_1 = require("./ModuleContainerToken");
|
|
11
|
+
//#region Initialization
|
|
12
|
+
const parkingsContainer = Di_1.IntegrationEngineContainer.createChildContainer();
|
|
13
|
+
exports.ParkingsContainer = parkingsContainer;
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region Datasource
|
|
16
|
+
//#endregion
|
|
17
|
+
//#region Transformation
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region Repositories
|
|
20
|
+
parkingsContainer
|
|
21
|
+
.register(ModuleContainerToken_1.ModuleContainerToken.ParkingsRepository, ParkingsRepository_1.ParkingsRepository)
|
|
22
|
+
.register(ModuleContainerToken_1.ModuleContainerToken.ParkingTariffsRepository, ParkingTariffsRepository_1.ParkingTariffsRepository)
|
|
23
|
+
.register(ModuleContainerToken_1.ModuleContainerToken.ParkingsBusinessErrorsRepository, ParkingsBusinessErrorsRepository_1.ParkingsBusinessErrorsRepository);
|
|
24
|
+
parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.RedisModel, ParkingsRedisModel_1.ParkingsRedisModel);
|
|
25
|
+
//#endregion
|
|
26
|
+
//#region Helpers
|
|
27
|
+
parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.TskTariffChecker, TskTariffChecker_1.TskTariffChecker);
|
|
28
|
+
//# sourceMappingURL=Di.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,wEAAsE;AACtE,uFAAqF;AACrF,uGAAqG;AACrG,2EAAyE;AACzE,iFAA+E;AAC/E,qEAA0F;AAC1F,iEAA8D;AAE9D,wBAAwB;AACxB,MAAM,iBAAiB,GAAG,+BAA0B,CAAC,oBAAoB,EAAE,CAAC;AAwB9C,8CAAiB;AAvB/C,YAAY;AAEZ,oBAAoB;AACpB,YAAY;AAEZ,wBAAwB;AACxB,YAAY;AAEZ,sBAAsB;AACtB,iBAAiB;KACZ,QAAQ,CAAC,2CAAoB,CAAC,kBAAkB,EAAE,uCAAkB,CAAC;KACrE,QAAQ,CAAC,2CAAoB,CAAC,wBAAwB,EAAE,mDAAwB,CAAC;KACjF,QAAQ,CAAC,2CAAoB,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC;AACvG,iBAAiB,CAAC,QAAQ,CAAqB,2CAAoB,CAAC,UAAU,EAAE,uCAAkB,CAAC,CAAC;AACpG,YAAY;AAEZ,iBAAiB;AACjB,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModuleContainerToken = void 0;
|
|
4
|
+
const ModuleContainerToken = {
|
|
5
|
+
TskTariffChecker: Symbol(),
|
|
6
|
+
RedisModel: Symbol(),
|
|
7
|
+
ParkingsRepository: Symbol(),
|
|
8
|
+
ParkingTariffsRepository: Symbol(),
|
|
9
|
+
ParkingsBusinessErrorsRepository: Symbol(),
|
|
10
|
+
};
|
|
11
|
+
exports.ModuleContainerToken = ModuleContainerToken;
|
|
12
|
+
//# sourceMappingURL=ModuleContainerToken.js.map
|
|
@@ -0,0 +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,wBAAwB,EAAE,MAAM,EAAE;IAClC,gCAAgC,EAAE,MAAM,EAAE;CAC7C,CAAC;AACO,oDAAoB"}
|
|
@@ -29,15 +29,6 @@ const queueDefinitions = [
|
|
|
29
29
|
worker: ParkingsWorker_1.ParkingsWorker,
|
|
30
30
|
workerMethod: "saveKoridDataToDB",
|
|
31
31
|
},
|
|
32
|
-
{
|
|
33
|
-
name: "saveParkingZonesPrague",
|
|
34
|
-
options: {
|
|
35
|
-
deadLetterExchange: config_1.config.RABBIT_EXCHANGE_NAME,
|
|
36
|
-
deadLetterRoutingKey: "dead",
|
|
37
|
-
},
|
|
38
|
-
worker: ParkingsWorker_1.ParkingsWorker,
|
|
39
|
-
workerMethod: "saveParkingZonesPrague",
|
|
40
|
-
},
|
|
41
32
|
{
|
|
42
33
|
name: "saveParkingLotsPrague",
|
|
43
34
|
options: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queueDefinitions.js","sourceRoot":"","sources":["../../src/integration-engine/queueDefinitions.ts"],"names":[],"mappings":";;;AAAA,yEAAsE;AAEtE,uDAAiD;AACjD,qDAAoD;AACpD,uDAAsD;AACtD,mFAAkF;AAElF,MAAM,gBAAgB,GAAuB;IACzC;QACI,IAAI,EAAE,gBAAQ,CAAC,IAAI;QACnB,WAAW,EAAE,eAAM,CAAC,oBAAoB,GAAG,GAAG,GAAG,gBAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;QAC5E,MAAM,EAAE;YACJ;gBACI,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;iBAC/B;gBACD,MAAM,EAAE,+BAAc;gBACtB,YAAY,EAAE,mBAAmB;aACpC;YACD;gBACI,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;iBAC/B;gBACD,MAAM,EAAE,+BAAc;gBACtB,YAAY,EAAE,mBAAmB;aACpC;YACD;gBACI,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"queueDefinitions.js","sourceRoot":"","sources":["../../src/integration-engine/queueDefinitions.ts"],"names":[],"mappings":";;;AAAA,yEAAsE;AAEtE,uDAAiD;AACjD,qDAAoD;AACpD,uDAAsD;AACtD,mFAAkF;AAElF,MAAM,gBAAgB,GAAuB;IACzC;QACI,IAAI,EAAE,gBAAQ,CAAC,IAAI;QACnB,WAAW,EAAE,eAAM,CAAC,oBAAoB,GAAG,GAAG,GAAG,gBAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;QAC5E,MAAM,EAAE;YACJ;gBACI,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;iBAC/B;gBACD,MAAM,EAAE,+BAAc;gBACtB,YAAY,EAAE,mBAAmB;aACpC;YACD;gBACI,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;iBAC/B;gBACD,MAAM,EAAE,+BAAc;gBACtB,YAAY,EAAE,mBAAmB;aACpC;YACD;gBACI,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;iBAC/B;gBACD,MAAM,EAAE,+BAAc;gBACtB,YAAY,EAAE,uBAAuB;aACxC;YACD;gBACI,IAAI,EAAE,mCAAmC;gBACzC,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;iBAC/B;gBACD,MAAM,EAAE,+BAAc;gBACtB,YAAY,EAAE,mCAAmC;aACpD;YACD;gBACI,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;oBAC5B,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;iBAC5C;gBACD,MAAM,EAAE,+BAAc;gBACtB,YAAY,EAAE,yBAAyB;aAC1C;YACD;gBACI,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;iBAC/B;gBACD,MAAM,EAAE,6CAAqB;gBAC7B,YAAY,EAAE,mBAAmB;aACpC;SACJ;KACJ;IACD;QACI,IAAI,EAAE,iBAAS,CAAC,IAAI;QACpB,WAAW,EAAE,eAAM,CAAC,oBAAoB,GAAG,GAAG,GAAG,iBAAS,CAAC,IAAI,CAAC,WAAW,EAAE;QAC7E,MAAM,EAAE;YACJ;gBACI,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;oBAC5B,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;iBAC1C;gBACD,MAAM,EAAE,iCAAe;gBACvB,YAAY,EAAE,iBAAiB;aAClC;SACJ;KACJ;CACJ,CAAC;AAEO,4CAAgB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IBusinessError } from "../../schema-definitions/models/interfaces/IBusinessError";
|
|
2
|
+
import { IModel } from "@golemio/core/dist/integration-engine/models/IModel";
|
|
3
|
+
import { PostgresModel } from "@golemio/core/dist/integration-engine/models/PostgresModel";
|
|
4
|
+
export declare class ParkingsBusinessErrorsRepository extends PostgresModel implements IModel {
|
|
5
|
+
constructor();
|
|
6
|
+
save: (errors: IBusinessError[]) => Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ParkingsBusinessErrorsRepository = void 0;
|
|
13
|
+
const _sch_1 = require("../../schema-definitions");
|
|
14
|
+
const BusinessError_1 = require("../../schema-definitions/models/BusinessError");
|
|
15
|
+
const PostgresModel_1 = require("@golemio/core/dist/integration-engine/models/PostgresModel");
|
|
16
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
17
|
+
class ParkingsBusinessErrorsRepository extends PostgresModel_1.PostgresModel {
|
|
18
|
+
constructor() {
|
|
19
|
+
super("ParkingsBusinessErrorsRepository", {
|
|
20
|
+
outputSequelizeAttributes: BusinessError_1.BusinessError.attributeModel,
|
|
21
|
+
pgSchema: _sch_1.Parkings.pgSchema,
|
|
22
|
+
pgTableName: "parkings_business_errors",
|
|
23
|
+
savingType: "insertOnly",
|
|
24
|
+
sequelizeAdditionalSettings: {
|
|
25
|
+
timestamps: false,
|
|
26
|
+
},
|
|
27
|
+
}, new golemio_validator_1.JSONSchemaValidator("ParkingsBusinessErrorsRepositoryValidator", BusinessError_1.BusinessError.jsonSchema));
|
|
28
|
+
this.save = (errors) => __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
yield this.validator.Validate(errors);
|
|
30
|
+
yield this.sequelizeModel.bulkCreate(errors, { ignoreDuplicates: true });
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.ParkingsBusinessErrorsRepository = ParkingsBusinessErrorsRepository;
|
|
35
|
+
//# sourceMappingURL=ParkingsBusinessErrorsRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParkingsBusinessErrorsRepository.js","sourceRoot":"","sources":["../../../src/integration-engine/repositories/ParkingsBusinessErrorsRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAAgC;AAChC,iFAA0D;AAG1D,8FAA2F;AAC3F,mFAAkF;AAElF,MAAa,gCAAiC,SAAQ,6BAAa;IAC/D;QACI,KAAK,CACD,kCAAkC,EAClC;YACI,yBAAyB,EAAE,6BAAa,CAAC,cAAc;YACvD,QAAQ,EAAE,eAAQ,CAAC,QAAQ;YAC3B,WAAW,EAAE,0BAA0B;YACvC,UAAU,EAAE,YAAY;YACxB,2BAA2B,EAAE;gBACzB,UAAU,EAAE,KAAK;aACpB;SACJ,EACD,IAAI,uCAAmB,CAAC,2CAA2C,EAAE,6BAAa,CAAC,UAAU,CAAC,CACjG,CAAC;QAGC,SAAI,GAAG,CAAO,MAAwB,EAAE,EAAE;YAC7C,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtC,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAgB,MAAM,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5F,CAAC,CAAA,CAAC;IALF,CAAC;CAMJ;AArBD,4EAqBC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParkingsRedisModel = void 0;
|
|
4
|
+
const _sch_1 = require("../../../schema-definitions");
|
|
5
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
6
|
+
class ParkingsRedisModel extends integration_engine_1.RedisModel {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(_sch_1.Parkings.name + "Model", {
|
|
9
|
+
isKeyConstructedFromData: false,
|
|
10
|
+
prefix: "/parking",
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.ParkingsRedisModel = ParkingsRedisModel;
|
|
15
|
+
//# sourceMappingURL=ParkingsRedisModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParkingsRedisModel.js","sourceRoot":"","sources":["../../../../src/integration-engine/repositories/redis/ParkingsRedisModel.ts"],"names":[],"mappings":";;;AAAA,sDAAgC;AAChC,8EAAmE;AAEnE,MAAa,kBAAmB,SAAQ,+BAAU;IAC9C;QACI,KAAK,CAAC,eAAQ,CAAC,IAAI,GAAG,OAAO,EAAE;YAC3B,wBAAwB,EAAE,KAAK;YAC/B,MAAM,EAAE,UAAU;SACrB,CAAC,CAAC;IACP,CAAC;CACJ;AAPD,gDAOC"}
|
|
@@ -27,6 +27,7 @@ exports.TSKParkingTariffTransformation = void 0;
|
|
|
27
27
|
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
28
28
|
const _sch_1 = require("../../schema-definitions");
|
|
29
29
|
const uuid_by_string_1 = __importDefault(require("uuid-by-string"));
|
|
30
|
+
const TskCalculationHelper_1 = require("../helpers/TskCalculationHelper");
|
|
30
31
|
const DayMap = {
|
|
31
32
|
"1": "Mo",
|
|
32
33
|
"2": "Tu",
|
|
@@ -126,15 +127,9 @@ class TSKParkingTariffTransformation extends integration_engine_1.BaseTransforma
|
|
|
126
127
|
start_time_of_period: this.openingHoursFormatter(dayString, item.TimeFrom, item.PayAtHoliday),
|
|
127
128
|
end_time_of_period: this.openingHoursFormatter(dayString, item.TimeTo, item.PayAtHoliday),
|
|
128
129
|
};
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
else {
|
|
133
|
-
let minPrice = +item.MinPrice === 0 ? +item.PricePerHour : +item.MinPrice;
|
|
134
|
-
result.push(Object.assign(Object.assign({}, desc), { charge_interval: (3600 / item.PricePerHour) * minPrice, max_iterations_of_charge: (item.MaxParkingTime * item.PricePerHour) / minPrice, charge: minPrice, charge_order_index: result.length, accepts_litacka: true }));
|
|
135
|
-
if (item.MaxPrice !== "0") {
|
|
136
|
-
result.push(Object.assign(Object.assign({}, desc), { charge: +item.MaxPrice, charge_order_index: result.length, charge_type: "maximum", accepts_litacka: true }));
|
|
137
|
-
}
|
|
130
|
+
result.push(Object.assign(Object.assign({}, desc), { charge_interval: TskCalculationHelper_1.TskCalculationHelper.getChargeInterval(+item.MinPrice, +item.PricePerHour), max_iterations_of_charge: TskCalculationHelper_1.TskCalculationHelper.getMaxChargeIterations(+item.MaxParkingTime, +item.MinPrice, +item.PricePerHour), charge: TskCalculationHelper_1.TskCalculationHelper.getCharge(+item.MinPrice, +item.PricePerHour), charge_order_index: result.length, accepts_litacka: true }));
|
|
131
|
+
if (+item.PricePerHour !== 0 && item.MaxPrice !== "0") {
|
|
132
|
+
result.push(Object.assign(Object.assign({}, desc), { charge: +item.MaxPrice, charge_order_index: result.length, charge_type: "maximum", accepts_litacka: true }));
|
|
138
133
|
}
|
|
139
134
|
}
|
|
140
135
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TSKParkingTariffTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/TSKParkingTariffTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAA4F;AAC5F,mDAAgC;AAChC,oEAA6C;
|
|
1
|
+
{"version":3,"file":"TSKParkingTariffTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/TSKParkingTariffTransformation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NewParkingsWorker = void 0;
|
|
4
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
5
|
+
const SaveParkingZonesPrague_1 = require("./tasks/SaveParkingZonesPrague");
|
|
6
|
+
class NewParkingsWorker extends integration_engine_1.AbstractWorker {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.name = "Parkings";
|
|
10
|
+
this.registerTask(new SaveParkingZonesPrague_1.SaveParkingZonesPrague(this.getQueuePrefix()));
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.NewParkingsWorker = NewParkingsWorker;
|
|
14
|
+
//# sourceMappingURL=NewParkingsWorker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NewParkingsWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/NewParkingsWorker.ts"],"names":[],"mappings":";;;AAAA,8EAAuE;AACvE,2EAAwE;AAExE,MAAa,iBAAkB,SAAQ,mCAAc;IAGjD;QACI,KAAK,EAAE,CAAC;QAHO,SAAI,GAAW,UAAU,CAAC;QAKzC,IAAI,CAAC,YAAY,CAAC,IAAI,+CAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;CACJ;AARD,8CAQC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine/workers/AbstractEmptyTask";
|
|
2
|
+
export declare class SaveParkingZonesPrague extends AbstractEmptyTask {
|
|
3
|
+
queueName: string;
|
|
4
|
+
private transformationDate;
|
|
5
|
+
private parkingsLocationModel;
|
|
6
|
+
private dataSourceIPR;
|
|
7
|
+
private dataSourceTSK;
|
|
8
|
+
private dataSourceTariffTSK;
|
|
9
|
+
private iprTransformation;
|
|
10
|
+
private tskTransformation;
|
|
11
|
+
private tskTariffTransformation;
|
|
12
|
+
private ftpTSKSettings;
|
|
13
|
+
private redisModel;
|
|
14
|
+
private parkingsModel;
|
|
15
|
+
private parkingsTariffsModel;
|
|
16
|
+
private parkingsBusinessErrorsRepository;
|
|
17
|
+
private config;
|
|
18
|
+
constructor(queuePrefix: string);
|
|
19
|
+
/**
|
|
20
|
+
* Parking zones Prague queue worker method
|
|
21
|
+
* - store all data for parking zones in Prague.
|
|
22
|
+
*/
|
|
23
|
+
protected execute: () => Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Parking zones Prague
|
|
26
|
+
* - store location data for parking zones in Prague.
|
|
27
|
+
* - merged TSK and IPR data sources
|
|
28
|
+
*/
|
|
29
|
+
private saveParkingZonesLocationsPrague;
|
|
30
|
+
/**
|
|
31
|
+
* Parking zones Prague
|
|
32
|
+
* - store tariff data for parking zones in Prague.
|
|
33
|
+
*/
|
|
34
|
+
private saveParkingZonesTariffsPrague;
|
|
35
|
+
private checkBusinessRules;
|
|
36
|
+
private saveBusinessErrors;
|
|
37
|
+
}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.SaveParkingZonesPrague = void 0;
|
|
39
|
+
const TariffCheckerFactory_1 = __importStar(require("../../businessRules/TariffCheckerFactory"));
|
|
40
|
+
const LocationBuilderHelper_1 = require("../../helpers/LocationBuilderHelper");
|
|
41
|
+
const Di_1 = require("../../ioc/Di");
|
|
42
|
+
const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
|
|
43
|
+
const ParkingsLocationRepository_1 = require("../../repositories/ParkingsLocationRepository");
|
|
44
|
+
const IPRParkingTransformation_1 = require("../../transformations/IPRParkingTransformation");
|
|
45
|
+
const TSKParkingTariffTransformation_1 = require("../../transformations/TSKParkingTariffTransformation");
|
|
46
|
+
const TSKParkingTransformation_1 = require("../../transformations/TSKParkingTransformation");
|
|
47
|
+
const UpdateAddressWorker_1 = require("../UpdateAddressWorker");
|
|
48
|
+
const index_1 = require("../../../schema-definitions/index");
|
|
49
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
50
|
+
const datasources_1 = require("@golemio/core/dist/integration-engine/datasources");
|
|
51
|
+
const ContainerToken_1 = require("@golemio/core/dist/integration-engine/ioc/ContainerToken");
|
|
52
|
+
const AbstractEmptyTask_1 = require("@golemio/core/dist/integration-engine/workers/AbstractEmptyTask");
|
|
53
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
54
|
+
const luxon_1 = require("@golemio/core/dist/shared/luxon");
|
|
55
|
+
const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
|
|
56
|
+
const uuid_by_string_1 = __importDefault(require("uuid-by-string"));
|
|
57
|
+
class SaveParkingZonesPrague extends AbstractEmptyTask_1.AbstractEmptyTask {
|
|
58
|
+
constructor(queuePrefix) {
|
|
59
|
+
super(queuePrefix);
|
|
60
|
+
this.queueName = "saveParkingZonesPrague";
|
|
61
|
+
/**
|
|
62
|
+
* Parking zones Prague queue worker method
|
|
63
|
+
* - store all data for parking zones in Prague.
|
|
64
|
+
*/
|
|
65
|
+
this.execute = () => __awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
yield this.saveParkingZonesLocationsPrague();
|
|
67
|
+
yield this.saveParkingZonesTariffsPrague();
|
|
68
|
+
yield this.redisModel.truncate(false);
|
|
69
|
+
});
|
|
70
|
+
/**
|
|
71
|
+
* Parking zones Prague
|
|
72
|
+
* - store location data for parking zones in Prague.
|
|
73
|
+
* - merged TSK and IPR data sources
|
|
74
|
+
*/
|
|
75
|
+
this.saveParkingZonesLocationsPrague = () => __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
this.ftpTSKSettings.filename = `Area_${(0, moment_timezone_1.default)().format("YYYY-MM-DD")}.json`;
|
|
77
|
+
this.dataSourceTSK.protocolStrategy.setConnectionSettings(this.ftpTSKSettings);
|
|
78
|
+
const dataTSK = yield this.dataSourceTSK.getAll();
|
|
79
|
+
const transformedTSKData = yield this.tskTransformation.transform(dataTSK.data);
|
|
80
|
+
const dataIPR = yield this.dataSourceIPR.getAll();
|
|
81
|
+
const transformedIPRData = yield this.iprTransformation.transform(dataIPR);
|
|
82
|
+
const result = yield (0, LocationBuilderHelper_1.mergeParkingZoneDataSets)(transformedTSKData, transformedIPRData);
|
|
83
|
+
yield this.parkingsModel.save(result.parking);
|
|
84
|
+
yield this.parkingsLocationModel.save(result.locations);
|
|
85
|
+
for (const item of result.parking) {
|
|
86
|
+
yield integration_engine_1.QueueManager.sendMessageToExchange(this.config.RABBIT_EXCHANGE_NAME + "." + UpdateAddressWorker_1.UpdateAddressWorker.workerName.toLowerCase(), "updateAddress", {
|
|
87
|
+
id: item.id,
|
|
88
|
+
point: item.centroid,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
for (const item of result.locations) {
|
|
92
|
+
yield integration_engine_1.QueueManager.sendMessageToExchange(this.config.RABBIT_EXCHANGE_NAME + "." + UpdateAddressWorker_1.UpdateAddressWorker.workerName.toLowerCase(), "updateLocationAddress", {
|
|
93
|
+
id: item.id,
|
|
94
|
+
point: item.centroid,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
/**
|
|
99
|
+
* Parking zones Prague
|
|
100
|
+
* - store tariff data for parking zones in Prague.
|
|
101
|
+
*/
|
|
102
|
+
this.saveParkingZonesTariffsPrague = () => __awaiter(this, void 0, void 0, function* () {
|
|
103
|
+
this.ftpTSKSettings.filename = `Tarif_${(0, moment_timezone_1.default)().format("YYYY-MM-DD")}.tsv`;
|
|
104
|
+
this.dataSourceTariffTSK.protocolStrategy.setConnectionSettings(this.ftpTSKSettings);
|
|
105
|
+
const dataTSK = yield this.dataSourceTariffTSK.getAll();
|
|
106
|
+
const dataRecords = dataTSK.data;
|
|
107
|
+
const { validTariffs, invalidResults } = this.checkBusinessRules(dataRecords);
|
|
108
|
+
const transformedTSKData = yield this.tskTariffTransformation.transform({
|
|
109
|
+
tsk: validTariffs,
|
|
110
|
+
lastUpdated: this.transformationDate,
|
|
111
|
+
});
|
|
112
|
+
yield this.parkingsTariffsModel.deleteByTariffIds(transformedTSKData);
|
|
113
|
+
yield this.parkingsTariffsModel.save(transformedTSKData);
|
|
114
|
+
yield this.saveBusinessErrors(invalidResults);
|
|
115
|
+
});
|
|
116
|
+
this.config = Di_1.ParkingsContainer.resolve(ContainerToken_1.ContainerToken.Config);
|
|
117
|
+
const transformationDate = new Date();
|
|
118
|
+
this.transformationDate = transformationDate;
|
|
119
|
+
const strategyIPR = new datasources_1.JSONDataTypeStrategy({ resultsPath: "features" });
|
|
120
|
+
strategyIPR.setFilter((item) => item.properties.TARIFTAB);
|
|
121
|
+
this.dataSourceIPR = new datasources_1.DataSource(index_1.Parkings.ipr.name + "DataSource", new datasources_1.HTTPProtocolStrategy({
|
|
122
|
+
headers: {},
|
|
123
|
+
method: "GET",
|
|
124
|
+
url: this.config.datasources.ParkingZones,
|
|
125
|
+
}), strategyIPR, new golemio_validator_1.JSONSchemaValidator(index_1.Parkings.ipr.name + "DataSource", index_1.Parkings.ipr.datasourceJsonSchema));
|
|
126
|
+
this.ftpTSKSettings = {
|
|
127
|
+
filename: "",
|
|
128
|
+
path: this.config.datasources.TSKFTPParkingZonesPath,
|
|
129
|
+
url: {
|
|
130
|
+
host: this.config.datasources.TSKFTP.host,
|
|
131
|
+
port: this.config.datasources.TSKFTP.port,
|
|
132
|
+
user: this.config.datasources.TSKFTP.user,
|
|
133
|
+
password: this.config.datasources.TSKFTP.password,
|
|
134
|
+
},
|
|
135
|
+
encoding: "utf8",
|
|
136
|
+
};
|
|
137
|
+
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));
|
|
138
|
+
this.dataSourceTariffTSK = new datasources_1.DataSource(index_1.Parkings.tsk.name + "DataSource", new datasources_1.FTPProtocolStrategy(this.ftpTSKSettings), new datasources_1.CSVDataTypeStrategy({
|
|
139
|
+
fastcsvParams: { delimiter: "\t", headers: true },
|
|
140
|
+
subscribe: (json) => json,
|
|
141
|
+
}), new golemio_validator_1.JSONSchemaValidator(index_1.Parkings.tsk.name + "DataSource", index_1.Parkings.tsk.datasourceTariffJsonSchema));
|
|
142
|
+
this.iprTransformation = new IPRParkingTransformation_1.IPRParkingTransformation();
|
|
143
|
+
this.tskTransformation = new TSKParkingTransformation_1.TSKParkingTransformation(transformationDate);
|
|
144
|
+
this.tskTariffTransformation = new TSKParkingTariffTransformation_1.TSKParkingTariffTransformation();
|
|
145
|
+
this.parkingsLocationModel = new ParkingsLocationRepository_1.ParkingsLocationRepository();
|
|
146
|
+
this.redisModel = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.RedisModel);
|
|
147
|
+
this.parkingsModel = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingsRepository);
|
|
148
|
+
this.parkingsTariffsModel = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingTariffsRepository);
|
|
149
|
+
this.parkingsBusinessErrorsRepository = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingsBusinessErrorsRepository);
|
|
150
|
+
}
|
|
151
|
+
checkBusinessRules(dataRecords) {
|
|
152
|
+
const tariffChecker = TariffCheckerFactory_1.default.get(TariffCheckerFactory_1.TariffCheckerEnum.TSK);
|
|
153
|
+
const checkedTariffs = dataRecords === null || dataRecords === void 0 ? void 0 : dataRecords.map((tariff) => {
|
|
154
|
+
return {
|
|
155
|
+
checkerResult: tariffChecker.isTariffValid({
|
|
156
|
+
cTariff: +tariff["CTARIF"],
|
|
157
|
+
pricePerHour: +tariff["PricePerHour"],
|
|
158
|
+
maxParkingTime: +tariff["MaxParkingTime"],
|
|
159
|
+
maxPrice: +tariff["MaxPrice"],
|
|
160
|
+
minPrice: +tariff["MinPrice"],
|
|
161
|
+
}),
|
|
162
|
+
tariff: tariff,
|
|
163
|
+
};
|
|
164
|
+
});
|
|
165
|
+
const listOfInvalidTariffIds = checkedTariffs
|
|
166
|
+
.filter((checkedTariff) => !checkedTariff.checkerResult.isValid)
|
|
167
|
+
.map((checkedTariff) => checkedTariff.tariff["CTARIF"]);
|
|
168
|
+
const validTariffs = dataRecords.filter((tariff) => !listOfInvalidTariffIds.includes(tariff["CTARIF"]));
|
|
169
|
+
const invalidResults = checkedTariffs.map((checkedTariff) => checkedTariff.checkerResult).filter((element) => !element.isValid);
|
|
170
|
+
return { validTariffs, invalidResults };
|
|
171
|
+
}
|
|
172
|
+
saveBusinessErrors(invalidResults) {
|
|
173
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
174
|
+
const businessErrors = invalidResults.map((result) => {
|
|
175
|
+
var _a;
|
|
176
|
+
return {
|
|
177
|
+
identifier: (0, uuid_by_string_1.default)(`${(_a = result.failedInput) === null || _a === void 0 ? void 0 : _a.cTariff}`),
|
|
178
|
+
provider: "tsk",
|
|
179
|
+
record_date: luxon_1.DateTime.now().toFormat("yyyy-MM-dd"),
|
|
180
|
+
type: "tariff",
|
|
181
|
+
detail: result.failedInput,
|
|
182
|
+
};
|
|
183
|
+
});
|
|
184
|
+
if (businessErrors.length > 0) {
|
|
185
|
+
yield this.parkingsBusinessErrorsRepository.save(businessErrors);
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
exports.SaveParkingZonesPrague = SaveParkingZonesPrague;
|
|
191
|
+
//# sourceMappingURL=SaveParkingZonesPrague.js.map
|