@golemio/energetics 1.2.12-dev.1155945469 → 1.2.12-dev.1210136153

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 (146) hide show
  1. package/db/example/.config.json +3 -0
  2. package/db/example/00_clear_test_data.sql +1 -0
  3. package/db/migrations/postgresql/20240304150326-commodity.js +53 -0
  4. package/db/migrations/postgresql/sqls/20240304150326-commodity-down.sql +2 -0
  5. package/db/migrations/postgresql/sqls/20240304150326-commodity-up.sql +38 -0
  6. package/dist/integration-engine/commodity-providers/constants.d.ts +1 -0
  7. package/dist/integration-engine/commodity-providers/constants.js +5 -0
  8. package/dist/integration-engine/commodity-providers/constants.js.map +1 -0
  9. package/dist/integration-engine/commodity-providers/datasources/CommodityProviderDataSourceFactory.d.ts +8 -0
  10. package/dist/integration-engine/commodity-providers/datasources/CommodityProviderDataSourceFactory.js +34 -0
  11. package/dist/integration-engine/commodity-providers/datasources/CommodityProviderDataSourceFactory.js.map +1 -0
  12. package/dist/integration-engine/commodity-providers/datasources/cem-api/CemApiDataSourceProvider.d.ts +13 -0
  13. package/dist/integration-engine/commodity-providers/datasources/cem-api/CemApiDataSourceProvider.js +70 -0
  14. package/dist/integration-engine/commodity-providers/datasources/cem-api/CemApiDataSourceProvider.js.map +1 -0
  15. package/dist/integration-engine/commodity-providers/datasources/cem-api/interfaces/ICemApiMeasurementsParams.d.ts +5 -0
  16. package/dist/integration-engine/commodity-providers/datasources/cem-api/interfaces/ICemApiMeasurementsParams.js +3 -0
  17. package/dist/integration-engine/commodity-providers/datasources/cem-api/interfaces/ICemApiMeasurementsParams.js.map +1 -0
  18. package/dist/integration-engine/commodity-providers/datasources/helpers/CommodityProviderEnum.d.ts +3 -0
  19. package/dist/integration-engine/commodity-providers/datasources/helpers/CommodityProviderEnum.js +8 -0
  20. package/dist/integration-engine/commodity-providers/datasources/helpers/CommodityProviderEnum.js.map +1 -0
  21. package/dist/integration-engine/commodity-providers/datasources/interfaces/ICommodityProviderDataSourceFactory.d.ts +13 -0
  22. package/dist/integration-engine/commodity-providers/datasources/interfaces/ICommodityProviderDataSourceFactory.js +4 -0
  23. package/dist/integration-engine/commodity-providers/datasources/interfaces/ICommodityProviderDataSourceFactory.js.map +1 -0
  24. package/dist/integration-engine/commodity-providers/datasources/interfaces/IDataSourceProvider.d.ts +4 -0
  25. package/dist/integration-engine/commodity-providers/datasources/interfaces/IDataSourceProvider.js +3 -0
  26. package/dist/integration-engine/commodity-providers/datasources/interfaces/IDataSourceProvider.js.map +1 -0
  27. package/dist/integration-engine/commodity-providers/datasources/static-data/StaticMeterSettingsDataSourceProvider.d.ts +11 -0
  28. package/dist/integration-engine/commodity-providers/datasources/static-data/StaticMeterSettingsDataSourceProvider.js +49 -0
  29. package/dist/integration-engine/commodity-providers/datasources/static-data/StaticMeterSettingsDataSourceProvider.js.map +1 -0
  30. package/dist/integration-engine/commodity-providers/ioc/Di.d.ts +3 -0
  31. package/dist/integration-engine/commodity-providers/ioc/Di.js +37 -0
  32. package/dist/integration-engine/commodity-providers/ioc/Di.js.map +1 -0
  33. package/dist/integration-engine/commodity-providers/ioc/WorkerContainerToken.d.ts +12 -0
  34. package/dist/integration-engine/commodity-providers/ioc/WorkerContainerToken.js +16 -0
  35. package/dist/integration-engine/commodity-providers/ioc/WorkerContainerToken.js.map +1 -0
  36. package/dist/integration-engine/commodity-providers/repositories/MeasurementRepository.d.ts +13 -0
  37. package/dist/integration-engine/commodity-providers/repositories/MeasurementRepository.js +67 -0
  38. package/dist/integration-engine/commodity-providers/repositories/MeasurementRepository.js.map +1 -0
  39. package/dist/integration-engine/commodity-providers/repositories/StaticMeterSettingsRepository.d.ts +16 -0
  40. package/dist/integration-engine/commodity-providers/repositories/StaticMeterSettingsRepository.js +80 -0
  41. package/dist/integration-engine/commodity-providers/repositories/StaticMeterSettingsRepository.js.map +1 -0
  42. package/dist/integration-engine/commodity-providers/transformations/CemMeasurementTransformation.d.ts +8 -0
  43. package/dist/integration-engine/commodity-providers/transformations/CemMeasurementTransformation.js +34 -0
  44. package/dist/integration-engine/commodity-providers/transformations/CemMeasurementTransformation.js.map +1 -0
  45. package/dist/integration-engine/commodity-providers/workers/CommodityWorker.d.ts +6 -0
  46. package/dist/integration-engine/commodity-providers/workers/CommodityWorker.js +23 -0
  47. package/dist/integration-engine/commodity-providers/workers/CommodityWorker.js.map +1 -0
  48. package/dist/integration-engine/commodity-providers/workers/interfaces/IDataEntrypointParams.d.ts +3 -0
  49. package/dist/integration-engine/commodity-providers/workers/interfaces/IDataEntrypointParams.js +3 -0
  50. package/dist/integration-engine/commodity-providers/workers/interfaces/IDataEntrypointParams.js.map +1 -0
  51. package/dist/integration-engine/commodity-providers/workers/interfaces/IMeasurementsParams.d.ts +4 -0
  52. package/dist/integration-engine/commodity-providers/workers/interfaces/IMeasurementsParams.js +3 -0
  53. package/dist/integration-engine/commodity-providers/workers/interfaces/IMeasurementsParams.js.map +1 -0
  54. package/dist/integration-engine/commodity-providers/workers/interfaces/IVeoliaMeasurementsParams.d.ts +5 -0
  55. package/dist/integration-engine/commodity-providers/workers/interfaces/IVeoliaMeasurementsParams.js +3 -0
  56. package/dist/integration-engine/commodity-providers/workers/interfaces/IVeoliaMeasurementsParams.js.map +1 -0
  57. package/dist/integration-engine/commodity-providers/workers/schema/DataEntrypointSchema.d.ts +4 -0
  58. package/dist/integration-engine/commodity-providers/workers/schema/DataEntrypointSchema.js +21 -0
  59. package/dist/integration-engine/commodity-providers/workers/schema/DataEntrypointSchema.js.map +1 -0
  60. package/dist/integration-engine/commodity-providers/workers/schema/MeasurementsSchema.d.ts +5 -0
  61. package/dist/integration-engine/commodity-providers/workers/schema/MeasurementsSchema.js +25 -0
  62. package/dist/integration-engine/commodity-providers/workers/schema/MeasurementsSchema.js.map +1 -0
  63. package/dist/integration-engine/commodity-providers/workers/schema/VeoliaMeasurementsSchema.d.ts +6 -0
  64. package/dist/integration-engine/commodity-providers/workers/schema/VeoliaMeasurementsSchema.js +23 -0
  65. package/dist/integration-engine/commodity-providers/workers/schema/VeoliaMeasurementsSchema.js.map +1 -0
  66. package/dist/integration-engine/commodity-providers/workers/tasks/FetchMeasurementOptionsStaticDataTask.d.ts +14 -0
  67. package/dist/integration-engine/commodity-providers/workers/tasks/FetchMeasurementOptionsStaticDataTask.js +78 -0
  68. package/dist/integration-engine/commodity-providers/workers/tasks/FetchMeasurementOptionsStaticDataTask.js.map +1 -0
  69. package/dist/integration-engine/commodity-providers/workers/tasks/FetchMeasurementsFromProvidersTask.d.ts +11 -0
  70. package/dist/integration-engine/commodity-providers/workers/tasks/FetchMeasurementsFromProvidersTask.js +69 -0
  71. package/dist/integration-engine/commodity-providers/workers/tasks/FetchMeasurementsFromProvidersTask.js.map +1 -0
  72. package/dist/integration-engine/commodity-providers/workers/tasks/FetchVeoliaMeasurementsTask.d.ts +26 -0
  73. package/dist/integration-engine/commodity-providers/workers/tasks/FetchVeoliaMeasurementsTask.js +173 -0
  74. package/dist/integration-engine/commodity-providers/workers/tasks/FetchVeoliaMeasurementsTask.js.map +1 -0
  75. package/dist/integration-engine/datasources/vpalace/VpalaceMeasurementDataSource.js +2 -2
  76. package/dist/integration-engine/datasources/vpalace/VpalaceMeasurementDataSource.js.map +1 -1
  77. package/dist/integration-engine/datasources/vpalace/VpalaceMeasuringEquipmentDataSource.js +2 -2
  78. package/dist/integration-engine/datasources/vpalace/VpalaceMeasuringEquipmentDataSource.js.map +1 -1
  79. package/dist/integration-engine/datasources/vpalace/VpalaceMeterTypeDataSource.js +2 -2
  80. package/dist/integration-engine/datasources/vpalace/VpalaceMeterTypeDataSource.js.map +1 -1
  81. package/dist/integration-engine/datasources/vpalace/VpalaceTypeMeasuringEquipmentDataSource.js +2 -2
  82. package/dist/integration-engine/datasources/vpalace/VpalaceTypeMeasuringEquipmentDataSource.js.map +1 -1
  83. package/dist/integration-engine/datasources/vpalace/VpalaceUnitsDataSource.js +2 -2
  84. package/dist/integration-engine/datasources/vpalace/VpalaceUnitsDataSource.js.map +1 -1
  85. package/dist/integration-engine/helpers/UnimonitorCemApiHelper.d.ts +19 -11
  86. package/dist/integration-engine/helpers/UnimonitorCemApiHelper.js +23 -39
  87. package/dist/integration-engine/helpers/UnimonitorCemApiHelper.js.map +1 -1
  88. package/dist/integration-engine/index.js +2 -1
  89. package/dist/integration-engine/index.js.map +1 -1
  90. package/dist/integration-engine/ioc/Di.js +4 -6
  91. package/dist/integration-engine/ioc/Di.js.map +1 -1
  92. package/dist/integration-engine/ioc/ModuleContainer.d.ts +0 -1
  93. package/dist/integration-engine/ioc/ModuleContainer.js +0 -2
  94. package/dist/integration-engine/ioc/ModuleContainer.js.map +1 -1
  95. package/dist/integration-engine/tasks/vpalace/FetchXDaysDataTask.d.ts +5 -5
  96. package/dist/integration-engine/tasks/vpalace/FetchXDaysDataTask.js +15 -10
  97. package/dist/integration-engine/tasks/vpalace/FetchXDaysDataTask.js.map +1 -1
  98. package/dist/integration-engine/tasks/vpalace/FetchXHoursDataTask.d.ts +5 -3
  99. package/dist/integration-engine/tasks/vpalace/FetchXHoursDataTask.js +15 -7
  100. package/dist/integration-engine/tasks/vpalace/FetchXHoursDataTask.js.map +1 -1
  101. package/dist/schema-definitions/constants.d.ts +1 -0
  102. package/dist/schema-definitions/constants.js +5 -0
  103. package/dist/schema-definitions/constants.js.map +1 -0
  104. package/dist/schema-definitions/datasources/StaticMeterSettingsJsonSchema.d.ts +3 -0
  105. package/dist/schema-definitions/datasources/StaticMeterSettingsJsonSchema.js +29 -0
  106. package/dist/schema-definitions/datasources/StaticMeterSettingsJsonSchema.js.map +1 -0
  107. package/dist/schema-definitions/datasources/commodity-providers/CemApiCountersJsonSchema.d.ts +3 -0
  108. package/dist/schema-definitions/datasources/commodity-providers/CemApiCountersJsonSchema.js +15 -0
  109. package/dist/schema-definitions/datasources/commodity-providers/CemApiCountersJsonSchema.js.map +1 -0
  110. package/dist/schema-definitions/datasources/commodity-providers/CemApiDevicesJsonSchema.d.ts +3 -0
  111. package/dist/schema-definitions/datasources/commodity-providers/CemApiDevicesJsonSchema.js +15 -0
  112. package/dist/schema-definitions/datasources/commodity-providers/CemApiDevicesJsonSchema.js.map +1 -0
  113. package/dist/schema-definitions/datasources/commodity-providers/CemApiMeasurementsJsonSchema.d.ts +3 -0
  114. package/dist/schema-definitions/datasources/commodity-providers/CemApiMeasurementsJsonSchema.js +15 -0
  115. package/dist/schema-definitions/datasources/commodity-providers/CemApiMeasurementsJsonSchema.js.map +1 -0
  116. package/dist/schema-definitions/datasources/commodity-providers/interfaces/ICemApiCounterDto.d.ts +4 -0
  117. package/dist/schema-definitions/datasources/commodity-providers/interfaces/ICemApiCounterDto.js +3 -0
  118. package/dist/schema-definitions/datasources/commodity-providers/interfaces/ICemApiCounterDto.js.map +1 -0
  119. package/dist/schema-definitions/datasources/commodity-providers/interfaces/ICemApiDeviceDto.d.ts +4 -0
  120. package/dist/schema-definitions/datasources/commodity-providers/interfaces/ICemApiDeviceDto.js +3 -0
  121. package/dist/schema-definitions/datasources/commodity-providers/interfaces/ICemApiDeviceDto.js.map +1 -0
  122. package/dist/schema-definitions/datasources/commodity-providers/interfaces/ICemApiMeasurementDto.d.ts +4 -0
  123. package/dist/schema-definitions/datasources/commodity-providers/interfaces/ICemApiMeasurementDto.js +3 -0
  124. package/dist/schema-definitions/datasources/commodity-providers/interfaces/ICemApiMeasurementDto.js.map +1 -0
  125. package/dist/schema-definitions/datasources/interfaces/IStaticMeterSettings.d.ts +13 -0
  126. package/dist/schema-definitions/datasources/interfaces/IStaticMeterSettings.js +3 -0
  127. package/dist/schema-definitions/datasources/interfaces/IStaticMeterSettings.js.map +1 -0
  128. package/dist/schema-definitions/models/MeasurementsModel.d.ts +17 -0
  129. package/dist/schema-definitions/models/MeasurementsModel.js +56 -0
  130. package/dist/schema-definitions/models/MeasurementsModel.js.map +1 -0
  131. package/dist/schema-definitions/models/StaticMeterSettingsModel.d.ts +13 -0
  132. package/dist/schema-definitions/models/StaticMeterSettingsModel.js +35 -0
  133. package/dist/schema-definitions/models/StaticMeterSettingsModel.js.map +1 -0
  134. package/dist/schema-definitions/models/helpers/CommodityProviderTypeEnum.d.ts +4 -0
  135. package/dist/schema-definitions/models/helpers/CommodityProviderTypeEnum.js +9 -0
  136. package/dist/schema-definitions/models/helpers/CommodityProviderTypeEnum.js.map +1 -0
  137. package/dist/schema-definitions/models/helpers/StaticDataResourceTypeEnum.d.ts +3 -0
  138. package/dist/schema-definitions/models/helpers/StaticDataResourceTypeEnum.js +8 -0
  139. package/dist/schema-definitions/models/helpers/StaticDataResourceTypeEnum.js.map +1 -0
  140. package/dist/schema-definitions/models/interfaces/IMeasurementDto.d.ts +10 -0
  141. package/dist/schema-definitions/models/interfaces/IMeasurementDto.js +3 -0
  142. package/dist/schema-definitions/models/interfaces/IMeasurementDto.js.map +1 -0
  143. package/dist/schema-definitions/models/interfaces/IStaticDataOutputDto.d.ts +11 -0
  144. package/dist/schema-definitions/models/interfaces/IStaticDataOutputDto.js +4 -0
  145. package/dist/schema-definitions/models/interfaces/IStaticDataOutputDto.js.map +1 -0
  146. package/package.json +2 -1
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.StaticMeterSettingsRepository = void 0;
25
+ const constants_1 = require("../../../schema-definitions/constants");
26
+ const StaticMeterSettingsModel_1 = require("../../../schema-definitions/models/StaticMeterSettingsModel");
27
+ const AbstractValidatableRepository_1 = require("@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractValidatableRepository");
28
+ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
29
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
30
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
31
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
32
+ let StaticMeterSettingsRepository = exports.StaticMeterSettingsRepository = class StaticMeterSettingsRepository extends AbstractValidatableRepository_1.AbstractValidatableRepository {
33
+ constructor(connector, logger) {
34
+ super(connector, logger);
35
+ this.schema = constants_1.PG_SCHEMA;
36
+ this.tableName = StaticMeterSettingsModel_1.StaticMeterSettingsModel.tableName;
37
+ this.validator = new golemio_validator_1.JSONSchemaValidator("static_data", StaticMeterSettingsModel_1.StaticMeterSettingsModel.jsonSchema);
38
+ this.sequelizeModel = connector
39
+ .getConnection()
40
+ .define(this.tableName, StaticMeterSettingsModel_1.StaticMeterSettingsModel.attributeModel, { schema: this.schema });
41
+ }
42
+ saveData(provider, resourceType, data) {
43
+ return __awaiter(this, void 0, void 0, function* () {
44
+ try {
45
+ yield this.validator.Validate({ provider, resource_type: resourceType, data });
46
+ }
47
+ catch (err) {
48
+ throw new golemio_errors_1.ValidationError("Static data validation error", this.constructor.name, err);
49
+ }
50
+ try {
51
+ yield this.sequelizeModel.upsert({ provider, resource_type: resourceType, data });
52
+ }
53
+ catch (err) {
54
+ throw new golemio_errors_1.GeneralError("Static data saving error", this.constructor.name, err);
55
+ }
56
+ });
57
+ }
58
+ getData(provider, resourceType) {
59
+ var _a;
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ try {
62
+ const result = yield this.sequelizeModel.findOne({
63
+ attributes: ["data"],
64
+ where: { provider, resource_type: resourceType },
65
+ });
66
+ return (_a = result === null || result === void 0 ? void 0 : result.data) !== null && _a !== void 0 ? _a : null;
67
+ }
68
+ catch (err) {
69
+ throw new golemio_errors_1.GeneralError("Static data fetching error", this.constructor.name, err);
70
+ }
71
+ });
72
+ }
73
+ };
74
+ exports.StaticMeterSettingsRepository = StaticMeterSettingsRepository = __decorate([
75
+ (0, tsyringe_1.injectable)(),
76
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.PostgresConnector)),
77
+ __param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
78
+ __metadata("design:paramtypes", [Object, Object])
79
+ ], StaticMeterSettingsRepository);
80
+ //# sourceMappingURL=StaticMeterSettingsRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticMeterSettingsRepository.js","sourceRoot":"","sources":["../../../../src/integration-engine/commodity-providers/repositories/StaticMeterSettingsRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAA2C;AAC3C,0GAAgF;AAMhF,8IAA2I;AAC3I,wEAAqE;AACrE,6EAAyF;AACzF,mFAAkF;AAElF,iEAAwE;AAGjE,IAAM,6BAA6B,2CAAnC,MAAM,6BAA8B,SAAQ,6DAA6B;IAO5E,YAAiD,SAA6B,EAA4B,MAAe;QACrH,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QANtB,WAAM,GAAG,qBAAS,CAAC;QACnB,cAAS,GAAG,mDAAwB,CAAC,SAAS,CAAC;QAMlD,IAAI,CAAC,SAAS,GAAG,IAAI,uCAAmB,CAAC,aAAa,EAAE,mDAAwB,CAAC,UAAU,CAAC,CAAC;QAC7F,IAAI,CAAC,cAAc,GAAG,SAAS;aAC1B,aAAa,EAAE;aACf,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,mDAAwB,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAClG,CAAC;IAEY,QAAQ,CACjB,QAA+B,EAC/B,YAAe,EACf,IAAyB;;YAEzB,IAAI;gBACA,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;aAClF;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,gCAAe,CAAC,8BAA8B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;aACzF;YAED,IAAI;gBACA,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;aACrF;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,0BAA0B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;aAClF;QACL,CAAC;KAAA;IAEY,OAAO,CAChB,QAA+B,EAC/B,YAAe;;;YAEf,IAAI;gBACA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC7C,UAAU,EAAE,CAAC,MAAM,CAAC;oBACpB,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE;iBACnD,CAAC,CAAC;gBACH,OAAO,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,IAAI,CAAC;aAC/B;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,4BAA4B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;aACpF;;KACJ;CACJ,CAAA;wCA/CY,6BAA6B;IADzC,IAAA,qBAAU,GAAE;IAQI,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,iBAAiB,CAAC,CAAA;IAAiC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GAPhG,6BAA6B,CA+CzC"}
@@ -0,0 +1,8 @@
1
+ import { ICemApiMeasurementDto } from "../../../schema-definitions/datasources/commodity-providers/interfaces/ICemApiMeasurementDto";
2
+ import { IMeasurementOption } from "../../../schema-definitions/datasources/interfaces/IStaticMeterSettings";
3
+ import { IMeasurementDto } from "../../../schema-definitions/models/interfaces/IMeasurementDto";
4
+ import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
5
+ export declare class CemMeasurementTransformation extends AbstractTransformation<IMeasurementOption & ICemApiMeasurementDto, IMeasurementDto> {
6
+ name: string;
7
+ protected transformInternal: (data: IMeasurementOption & ICemApiMeasurementDto) => IMeasurementDto;
8
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CemMeasurementTransformation = void 0;
10
+ const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
11
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
12
+ const CommodityProviderEnum_1 = require("../datasources/helpers/CommodityProviderEnum");
13
+ let CemMeasurementTransformation = exports.CemMeasurementTransformation = class CemMeasurementTransformation extends AbstractTransformation_1.AbstractTransformation {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.name = "CemMeasurementTransformation";
17
+ this.transformInternal = (data) => {
18
+ return {
19
+ source: CommodityProviderEnum_1.CommodityProvider.UnimonitorCemApi,
20
+ measurement_category: data.Name,
21
+ addr: data.Addr,
22
+ meter: data.Meter,
23
+ timestamp: new Date(data.timestamp),
24
+ variable: data.Var,
25
+ type: data.Type,
26
+ value: data.value,
27
+ };
28
+ };
29
+ }
30
+ };
31
+ exports.CemMeasurementTransformation = CemMeasurementTransformation = __decorate([
32
+ (0, tsyringe_1.injectable)()
33
+ ], CemMeasurementTransformation);
34
+ //# sourceMappingURL=CemMeasurementTransformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CemMeasurementTransformation.js","sourceRoot":"","sources":["../../../../src/integration-engine/commodity-providers/transformations/CemMeasurementTransformation.ts"],"names":[],"mappings":";;;;;;;;;AAGA,6GAA0G;AAC1G,iEAAgE;AAChE,wFAAiF;AAG1E,IAAM,4BAA4B,0CAAlC,MAAM,4BAA6B,SAAQ,+CAGjD;IAHM;;QAII,SAAI,GAAG,8BAA8B,CAAC;QAEnC,sBAAiB,GAAG,CAAC,IAAgD,EAAmB,EAAE;YAChG,OAAO;gBACH,MAAM,EAAE,yCAAiB,CAAC,gBAAgB;gBAC1C,oBAAoB,EAAE,IAAI,CAAC,IAAI;gBAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBACnC,QAAQ,EAAE,IAAI,CAAC,GAAG;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;aACpB,CAAC;QACN,CAAC,CAAC;IACN,CAAC;CAAA,CAAA;uCAlBY,4BAA4B;IADxC,IAAA,qBAAU,GAAE;GACA,4BAA4B,CAkBxC"}
@@ -0,0 +1,6 @@
1
+ import { AbstractTask, AbstractWorker } from "@golemio/core/dist/integration-engine";
2
+ export declare class CommodityWorker extends AbstractWorker {
3
+ protected name: string;
4
+ constructor();
5
+ registerTask: (task: AbstractTask<any>) => void;
6
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommodityWorker = void 0;
4
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
5
+ const constants_1 = require("../constants");
6
+ const Di_1 = require("../ioc/Di");
7
+ const WorkerContainerToken_1 = require("../ioc/WorkerContainerToken");
8
+ class CommodityWorker extends integration_engine_1.AbstractWorker {
9
+ constructor() {
10
+ super();
11
+ this.name = constants_1.WORKER_NAME;
12
+ this.registerTask = (task) => {
13
+ super.registerTask(task);
14
+ task.queuePrefix = this.getQueuePrefix();
15
+ };
16
+ // Register tasks
17
+ this.registerTask(Di_1.CommodityContainer.resolve(WorkerContainerToken_1.WorkerContainerToken.FetchMeasurementsFromProvidersTask));
18
+ this.registerTask(Di_1.CommodityContainer.resolve(WorkerContainerToken_1.WorkerContainerToken.FetchMeasurementOptionsStaticDataTask));
19
+ this.registerTask(Di_1.CommodityContainer.resolve(WorkerContainerToken_1.WorkerContainerToken.FetchVeoliaMeasurementsTask));
20
+ }
21
+ }
22
+ exports.CommodityWorker = CommodityWorker;
23
+ //# sourceMappingURL=CommodityWorker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommodityWorker.js","sourceRoot":"","sources":["../../../../src/integration-engine/commodity-providers/workers/CommodityWorker.ts"],"names":[],"mappings":";;;AAAA,8EAAqF;AACrF,4CAA2C;AAC3C,kCAA+C;AAC/C,sEAAmE;AAKnE,MAAa,eAAgB,SAAQ,mCAAc;IAG/C;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,uBAAW,CAAC;QAuBtB,iBAAY,GAAG,CAAC,IAAuB,EAAQ,EAAE;YACpD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QArBE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CACtB,2CAAoB,CAAC,kCAAkC,CAC1D,CACJ,CAAC;QAEF,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CACtB,2CAAoB,CAAC,qCAAqC,CAC7D,CACJ,CAAC;QAEF,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CAA8B,2CAAoB,CAAC,2BAA2B,CAAC,CAC5G,CAAC;IACN,CAAC;CAMJ;AA5BD,0CA4BC"}
@@ -0,0 +1,3 @@
1
+ export interface IDataEntrypointParams {
2
+ targetDays: number;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IDataEntrypointParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDataEntrypointParams.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/interfaces/IDataEntrypointParams.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export interface IMeasurementsParams {
2
+ dateFrom: string;
3
+ dateTo: string;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IMeasurementsParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IMeasurementsParams.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/interfaces/IMeasurementsParams.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { CommodityProviderType } from "../../../../schema-definitions/models/helpers/CommodityProviderTypeEnum";
2
+ import { IMeasurementsParams } from "./IMeasurementsParams";
3
+ export interface IVeoliaMeasurementsParams extends IMeasurementsParams {
4
+ providerType: CommodityProviderType.CemApiVeoliaElectro | CommodityProviderType.CemApiVeoliaWater;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IVeoliaMeasurementsParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IVeoliaMeasurementsParams.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/interfaces/IVeoliaMeasurementsParams.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { IDataEntrypointParams } from "../interfaces/IDataEntrypointParams";
2
+ export declare class DataEntrypointValidationSchema implements IDataEntrypointParams {
3
+ targetDays: number;
4
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DataEntrypointValidationSchema = void 0;
13
+ const class_validator_1 = require("@golemio/core/dist/shared/class-validator");
14
+ class DataEntrypointValidationSchema {
15
+ }
16
+ exports.DataEntrypointValidationSchema = DataEntrypointValidationSchema;
17
+ __decorate([
18
+ (0, class_validator_1.IsInt)(),
19
+ __metadata("design:type", Number)
20
+ ], DataEntrypointValidationSchema.prototype, "targetDays", void 0);
21
+ //# sourceMappingURL=DataEntrypointSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataEntrypointSchema.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/schema/DataEntrypointSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+EAAkE;AAGlE,MAAa,8BAA8B;CAG1C;AAHD,wEAGC;AADG;IADC,IAAA,uBAAK,GAAE;;kEACY"}
@@ -0,0 +1,5 @@
1
+ import { IMeasurementsParams } from "../interfaces/IMeasurementsParams";
2
+ export declare class MeasurementsValidationSchema implements IMeasurementsParams {
3
+ dateFrom: string;
4
+ dateTo: string;
5
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MeasurementsValidationSchema = void 0;
13
+ const class_validator_1 = require("@golemio/core/dist/shared/class-validator");
14
+ class MeasurementsValidationSchema {
15
+ }
16
+ exports.MeasurementsValidationSchema = MeasurementsValidationSchema;
17
+ __decorate([
18
+ (0, class_validator_1.IsISO8601)(),
19
+ __metadata("design:type", String)
20
+ ], MeasurementsValidationSchema.prototype, "dateFrom", void 0);
21
+ __decorate([
22
+ (0, class_validator_1.IsISO8601)(),
23
+ __metadata("design:type", String)
24
+ ], MeasurementsValidationSchema.prototype, "dateTo", void 0);
25
+ //# sourceMappingURL=MeasurementsSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeasurementsSchema.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/schema/MeasurementsSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+EAAsE;AAGtE,MAAa,4BAA4B;CAMxC;AAND,oEAMC;AAJG;IADC,IAAA,2BAAS,GAAE;;8DACM;AAGlB;IADC,IAAA,2BAAS,GAAE;;4DACI"}
@@ -0,0 +1,6 @@
1
+ import { CommodityProviderType } from "../../../../schema-definitions/models/helpers/CommodityProviderTypeEnum";
2
+ import { IVeoliaMeasurementsParams } from "../interfaces/IVeoliaMeasurementsParams";
3
+ import { MeasurementsValidationSchema } from "./MeasurementsSchema";
4
+ export declare class VeoliaMeasurementsValidationSchema extends MeasurementsValidationSchema implements IVeoliaMeasurementsParams {
5
+ providerType: CommodityProviderType.CemApiVeoliaElectro | CommodityProviderType.CemApiVeoliaWater;
6
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.VeoliaMeasurementsValidationSchema = void 0;
13
+ const CommodityProviderTypeEnum_1 = require("../../../../schema-definitions/models/helpers/CommodityProviderTypeEnum");
14
+ const class_validator_1 = require("@golemio/core/dist/shared/class-validator");
15
+ const MeasurementsSchema_1 = require("./MeasurementsSchema");
16
+ class VeoliaMeasurementsValidationSchema extends MeasurementsSchema_1.MeasurementsValidationSchema {
17
+ }
18
+ exports.VeoliaMeasurementsValidationSchema = VeoliaMeasurementsValidationSchema;
19
+ __decorate([
20
+ (0, class_validator_1.IsEnum)([CommodityProviderTypeEnum_1.CommodityProviderType.CemApiVeoliaElectro, CommodityProviderTypeEnum_1.CommodityProviderType.CemApiVeoliaWater]),
21
+ __metadata("design:type", String)
22
+ ], VeoliaMeasurementsValidationSchema.prototype, "providerType", void 0);
23
+ //# sourceMappingURL=VeoliaMeasurementsSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VeoliaMeasurementsSchema.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/schema/VeoliaMeasurementsSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uHAAsF;AACtF,+EAAmE;AAEnE,6DAAoE;AAEpE,MAAa,kCAAmC,SAAQ,iDAA4B;CAGnF;AAHD,gFAGC;AADG;IADC,IAAA,wBAAM,EAAC,CAAC,iDAAqB,CAAC,mBAAmB,EAAE,iDAAqB,CAAC,iBAAiB,CAAC,CAAC;;wEACM"}
@@ -0,0 +1,14 @@
1
+ import { StaticMeterSettingsDataSourceProvider } from "../../datasources/static-data/StaticMeterSettingsDataSourceProvider";
2
+ import { StaticMeterSettingsRepository } from "../../repositories/StaticMeterSettingsRepository";
3
+ import { ILogger } from "@golemio/core/dist/helpers/logger";
4
+ import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine/workers/AbstractEmptyTask";
5
+ export declare class FetchMeasurementOptionsStaticDataTask extends AbstractEmptyTask {
6
+ private logger;
7
+ private staticDataSourceProvider;
8
+ private meterSettingsRepository;
9
+ readonly queueName = "fetchMeasurementOptionsStaticData";
10
+ readonly queueTtl: number;
11
+ constructor(logger: ILogger, staticDataSourceProvider: StaticMeterSettingsDataSourceProvider, meterSettingsRepository: StaticMeterSettingsRepository);
12
+ protected execute(): Promise<void>;
13
+ private lookupMeasurementsOptionsByKey;
14
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.FetchMeasurementOptionsStaticDataTask = void 0;
25
+ const constants_1 = require("../../constants");
26
+ const StaticMeterSettingsDataSourceProvider_1 = require("../../datasources/static-data/StaticMeterSettingsDataSourceProvider");
27
+ const WorkerContainerToken_1 = require("../../ioc/WorkerContainerToken");
28
+ const StaticMeterSettingsRepository_1 = require("../../repositories/StaticMeterSettingsRepository");
29
+ const CommodityProviderTypeEnum_1 = require("../../../../schema-definitions/models/helpers/CommodityProviderTypeEnum");
30
+ const StaticDataResourceTypeEnum_1 = require("../../../../schema-definitions/models/helpers/StaticDataResourceTypeEnum");
31
+ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
32
+ const AbstractEmptyTask_1 = require("@golemio/core/dist/integration-engine/workers/AbstractEmptyTask");
33
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
34
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
35
+ const optionLookupKeys = {
36
+ [CommodityProviderTypeEnum_1.CommodityProviderType.CemApiVeoliaWater]: "CemWaterOptions",
37
+ [CommodityProviderTypeEnum_1.CommodityProviderType.CemApiVeoliaElectro]: "CemElectroOptions",
38
+ };
39
+ let FetchMeasurementOptionsStaticDataTask = exports.FetchMeasurementOptionsStaticDataTask = class FetchMeasurementOptionsStaticDataTask extends AbstractEmptyTask_1.AbstractEmptyTask {
40
+ constructor(logger, staticDataSourceProvider, meterSettingsRepository) {
41
+ super(constants_1.WORKER_NAME);
42
+ this.logger = logger;
43
+ this.staticDataSourceProvider = staticDataSourceProvider;
44
+ this.meterSettingsRepository = meterSettingsRepository;
45
+ this.queueName = "fetchMeasurementOptionsStaticData";
46
+ this.queueTtl = 59 * 60 * 1000; // 59min
47
+ }
48
+ execute() {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ const dataSource = this.staticDataSourceProvider.getDataSource();
51
+ const meterSettings = yield dataSource.getAll();
52
+ for (const [commodityProvider, key] of Object.entries(optionLookupKeys)) {
53
+ const options = this.lookupMeasurementsOptionsByKey(meterSettings, key);
54
+ if (options.length === 0) {
55
+ continue;
56
+ }
57
+ this.logger.info(`Fetched ${options.length} measurement options for ${commodityProvider}`);
58
+ yield this.meterSettingsRepository.saveData(commodityProvider, StaticDataResourceTypeEnum_1.StaticDataResourceType.MeasurementOptions, options);
59
+ }
60
+ });
61
+ }
62
+ lookupMeasurementsOptionsByKey(meterSettings, key) {
63
+ const settings = meterSettings[key];
64
+ if (!(settings === null || settings === void 0 ? void 0 : settings.MeasurementOptions)) {
65
+ throw new golemio_errors_1.GeneralError(`No measurements options found for key: ${key}`);
66
+ }
67
+ return settings === null || settings === void 0 ? void 0 : settings.MeasurementOptions;
68
+ }
69
+ };
70
+ exports.FetchMeasurementOptionsStaticDataTask = FetchMeasurementOptionsStaticDataTask = __decorate([
71
+ (0, tsyringe_1.injectable)(),
72
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
73
+ __param(1, (0, tsyringe_1.inject)(WorkerContainerToken_1.WorkerContainerToken.StaticMeterSettingsDataSourceProvider)),
74
+ __param(2, (0, tsyringe_1.inject)(WorkerContainerToken_1.WorkerContainerToken.StaticMeterSettingsRepository)),
75
+ __metadata("design:paramtypes", [Object, StaticMeterSettingsDataSourceProvider_1.StaticMeterSettingsDataSourceProvider,
76
+ StaticMeterSettingsRepository_1.StaticMeterSettingsRepository])
77
+ ], FetchMeasurementOptionsStaticDataTask);
78
+ //# sourceMappingURL=FetchMeasurementOptionsStaticDataTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchMeasurementOptionsStaticDataTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/FetchMeasurementOptionsStaticDataTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgE;AAChE,+HAA8I;AAC9I,yEAAwF;AACxF,oGAAmH;AAEnH,uHAAsF;AACtF,yHAAwF;AACxF,wEAAqE;AAErE,uGAAoG;AACpG,6EAAwE;AACxE,iEAAwE;AAExE,MAAM,gBAAgB,GAAG;IACrB,CAAC,iDAAqB,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;IAC5D,CAAC,iDAAqB,CAAC,mBAAmB,CAAC,EAAE,mBAAmB;CACnE,CAAC;AAGK,IAAM,qCAAqC,mDAA3C,MAAM,qCAAsC,SAAQ,qCAAiB;IAIxE,YAC8B,MAAuB,EAEjD,wBAAuE,EAEvE,uBAA8D;QAE9D,KAAK,CAAC,uBAAW,CAAC,CAAC;QANe,WAAM,GAAN,MAAM,CAAS;QAEzC,6BAAwB,GAAxB,wBAAwB,CAAuC;QAE/D,4BAAuB,GAAvB,uBAAuB,CAA+B;QARlD,cAAS,GAAG,mCAAmC,CAAC;QAChD,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ;IAUnD,CAAC;IAEe,OAAO;;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,aAAa,EAAE,CAAC;YACjE,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC;YAEhD,KAAK,MAAM,CAAC,iBAAiB,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;gBACrE,MAAM,OAAO,GAAG,IAAI,CAAC,8BAA8B,CAAC,aAAa,EAAE,GAAiC,CAAC,CAAC;gBACtG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;oBACtB,SAAS;iBACZ;gBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,MAAM,4BAA4B,iBAAiB,EAAE,CAAC,CAAC;gBAC3F,MAAM,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CACvC,iBAA0C,EAC1C,mDAAsB,CAAC,kBAAkB,EACzC,OAAO,CACV,CAAC;aACL;QACL,CAAC;KAAA;IAEO,8BAA8B,CAClC,aAAmC,EACnC,GAA+B;QAE/B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,kBAAkB,CAAA,EAAE;YAC/B,MAAM,IAAI,6BAAY,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;SAC3E;QACD,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,kBAAkB,CAAC;IACxC,CAAC;CACJ,CAAA;gDA3CY,qCAAqC;IADjD,IAAA,qBAAU,GAAE;IAMJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;IACxB,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,qCAAqC,CAAC,CAAA;IAElE,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,6BAA6B,CAAC,CAAA;6CADzB,6EAAqC;QAEtC,6DAA6B;GATzD,qCAAqC,CA2CjD"}
@@ -0,0 +1,11 @@
1
+ import { AbstractTask } from "@golemio/core/dist/integration-engine";
2
+ import { IDataEntrypointParams } from "../interfaces/IDataEntrypointParams";
3
+ import { DataEntrypointValidationSchema } from "../schema/DataEntrypointSchema";
4
+ export declare class FetchMeasurementsFromProvidersTask extends AbstractTask<IDataEntrypointParams> {
5
+ readonly queueName = "fetchMeasurementsFromProviders";
6
+ readonly queueTtl: number;
7
+ readonly schema: typeof DataEntrypointValidationSchema;
8
+ constructor();
9
+ execute(data: IDataEntrypointParams): Promise<void>;
10
+ private generateDateParams;
11
+ }
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
+ return new (P || (P = Promise))(function (resolve, reject) {
14
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18
+ });
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.FetchMeasurementsFromProvidersTask = void 0;
22
+ const constants_1 = require("../../constants");
23
+ const CommodityProviderTypeEnum_1 = require("../../../../schema-definitions/models/helpers/CommodityProviderTypeEnum");
24
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
25
+ const luxon_1 = require("@golemio/core/dist/shared/luxon");
26
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
27
+ const DataEntrypointSchema_1 = require("../schema/DataEntrypointSchema");
28
+ let FetchMeasurementsFromProvidersTask = exports.FetchMeasurementsFromProvidersTask = class FetchMeasurementsFromProvidersTask extends integration_engine_1.AbstractTask {
29
+ constructor() {
30
+ super(constants_1.WORKER_NAME);
31
+ this.queueName = "fetchMeasurementsFromProviders";
32
+ this.queueTtl = 60 * 60 * 1000;
33
+ this.schema = DataEntrypointSchema_1.DataEntrypointValidationSchema;
34
+ }
35
+ execute(data) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ for (const { dateFrom, dateTo } of this.generateDateParams(data)) {
38
+ integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "fetchVeoliaMeasurements", {
39
+ providerType: CommodityProviderTypeEnum_1.CommodityProviderType.CemApiVeoliaWater,
40
+ dateFrom,
41
+ dateTo,
42
+ });
43
+ integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "fetchVeoliaMeasurements", {
44
+ providerType: CommodityProviderTypeEnum_1.CommodityProviderType.CemApiVeoliaElectro,
45
+ dateFrom,
46
+ dateTo,
47
+ });
48
+ }
49
+ });
50
+ }
51
+ *generateDateParams(data) {
52
+ const currentDate = luxon_1.DateTime.now().startOf("day");
53
+ const leftBoundDate = currentDate.minus({ days: data.targetDays });
54
+ const intervals = luxon_1.Interval.fromDateTimes(leftBoundDate, currentDate.plus({ days: 1 })).splitBy({ months: 1 });
55
+ for (const interval of intervals) {
56
+ const start = interval.start.startOf("day");
57
+ const end = interval.end.startOf("day");
58
+ yield {
59
+ dateFrom: start.toISODate(),
60
+ dateTo: end.toISODate(),
61
+ };
62
+ }
63
+ }
64
+ };
65
+ exports.FetchMeasurementsFromProvidersTask = FetchMeasurementsFromProvidersTask = __decorate([
66
+ (0, tsyringe_1.injectable)(),
67
+ __metadata("design:paramtypes", [])
68
+ ], FetchMeasurementsFromProvidersTask);
69
+ //# sourceMappingURL=FetchMeasurementsFromProvidersTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchMeasurementsFromProvidersTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/FetchMeasurementsFromProvidersTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgE;AAChE,uHAAsF;AACtF,8EAAmF;AACnF,2DAAqE;AACrE,iEAAgE;AAGhE,yEAAgF;AAGzE,IAAM,kCAAkC,gDAAxC,MAAM,kCAAmC,SAAQ,iCAAmC;IAKvF;QACI,KAAK,CAAC,uBAAW,CAAC,CAAC;QALP,cAAS,GAAG,gCAAgC,CAAC;QAC7C,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC1B,WAAM,GAAG,qDAA8B,CAAC;IAIxD,CAAC;IAEY,OAAO,CAAC,IAA2B;;YAC5C,KAAK,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;gBAC9D,iCAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,yBAAyB,EAAE;oBAC5E,YAAY,EAAE,iDAAqB,CAAC,iBAAiB;oBACrD,QAAQ;oBACR,MAAM;iBACT,CAAC,CAAC;gBAEH,iCAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,yBAAyB,EAAE;oBAC5E,YAAY,EAAE,iDAAqB,CAAC,mBAAmB;oBACvD,QAAQ;oBACR,MAAM;iBACT,CAAC,CAAC;aACN;QACL,CAAC;KAAA;IAEO,CAAC,kBAAkB,CAAC,IAA2B;QACnD,MAAM,WAAW,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,gBAAQ,CAAC,aAAa,CAAC,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAE9G,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAExC,MAAM;gBACF,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE;gBAC3B,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE;aAC1B,CAAC;SACL;IACL,CAAC;CACJ,CAAA;6CAxCY,kCAAkC;IAD9C,IAAA,qBAAU,GAAE;;GACA,kCAAkC,CAwC9C"}
@@ -0,0 +1,26 @@
1
+ import { ICommodityProviderDataSourceFactory } from "../../datasources/interfaces/ICommodityProviderDataSourceFactory";
2
+ import { MeasurementRepository } from "../../repositories/MeasurementRepository";
3
+ import { StaticMeterSettingsRepository } from "../../repositories/StaticMeterSettingsRepository";
4
+ import { CemMeasurementTransformation } from "../../transformations/CemMeasurementTransformation";
5
+ import { ILogger } from "@golemio/core/dist/helpers";
6
+ import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
7
+ import { AbstractTask } from "@golemio/core/dist/integration-engine";
8
+ import { IVeoliaMeasurementsParams } from "../interfaces/IVeoliaMeasurementsParams";
9
+ import { VeoliaMeasurementsValidationSchema } from "../schema/VeoliaMeasurementsSchema";
10
+ export declare class FetchVeoliaMeasurementsTask extends AbstractTask<IVeoliaMeasurementsParams> {
11
+ private config;
12
+ private logger;
13
+ private dataSourceFactory;
14
+ private measurementTransformation;
15
+ private measurementRepository;
16
+ private meterSettingsRepository;
17
+ readonly queueName = "fetchVeoliaMeasurements";
18
+ readonly queueTtl: number;
19
+ readonly schema: typeof VeoliaMeasurementsValidationSchema;
20
+ constructor(config: ISimpleConfig, logger: ILogger, dataSourceFactory: ICommodityProviderDataSourceFactory, measurementTransformation: CemMeasurementTransformation, measurementRepository: MeasurementRepository, meterSettingsRepository: StaticMeterSettingsRepository);
21
+ execute(data: IVeoliaMeasurementsParams): Promise<void>;
22
+ private getProviderConfig;
23
+ private generateMeasurements;
24
+ private getDataFromDataSource;
25
+ private saveConsumptionData;
26
+ }