@golemio/energetics 1.4.9-dev.1632309400 → 1.4.9-rc.1648069376

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 (143) hide show
  1. package/db/migrations/postgresql/20250120141804-ptas-selected-meters.js +53 -0
  2. package/db/migrations/postgresql/sqls/20250120141804-ptas-selected-meters-down.sql +1 -0
  3. package/db/migrations/postgresql/sqls/20250120141804-ptas-selected-meters-up.sql +3 -0
  4. package/dist/input-gateway/pre/PreCsvInputController.js +4 -13
  5. package/dist/input-gateway/pre/PreCsvInputController.js.map +1 -1
  6. package/dist/input-gateway/pre/PreInputRouter.js +6 -15
  7. package/dist/input-gateway/pre/PreInputRouter.js.map +1 -1
  8. package/dist/input-gateway/pre/PreJsonInputController.js +4 -13
  9. package/dist/input-gateway/pre/PreJsonInputController.js.map +1 -1
  10. package/dist/input-gateway/ptas/PtasRouter.js +3 -12
  11. package/dist/input-gateway/ptas/PtasRouter.js.map +1 -1
  12. package/dist/input-gateway/ptas/PtasWebScrapingController.js +4 -13
  13. package/dist/input-gateway/ptas/PtasWebScrapingController.js.map +1 -1
  14. package/dist/integration-engine/commodity-providers/datasources/ppas-ave-api/helpers/PpasAveApiHelper.js +9 -18
  15. package/dist/integration-engine/commodity-providers/datasources/ppas-ave-api/helpers/PpasAveApiHelper.js.map +1 -1
  16. package/dist/integration-engine/commodity-providers/datasources/pre-elektro-api/helpers/PreElectroHelper.js +29 -40
  17. package/dist/integration-engine/commodity-providers/datasources/pre-elektro-api/helpers/PreElectroHelper.js.map +1 -1
  18. package/dist/integration-engine/commodity-providers/ioc/Di.js +1 -1
  19. package/dist/integration-engine/commodity-providers/ioc/Di.js.map +1 -1
  20. package/dist/integration-engine/commodity-providers/repositories/MeasurementRepository.js +15 -26
  21. package/dist/integration-engine/commodity-providers/repositories/MeasurementRepository.js.map +1 -1
  22. package/dist/integration-engine/commodity-providers/repositories/StaticMeterSettingsRepository.js +24 -38
  23. package/dist/integration-engine/commodity-providers/repositories/StaticMeterSettingsRepository.js.map +1 -1
  24. package/dist/integration-engine/commodity-providers/workers/tasks/AbstractFetchMeasurementsTask.js +13 -24
  25. package/dist/integration-engine/commodity-providers/workers/tasks/AbstractFetchMeasurementsTask.js.map +1 -1
  26. package/dist/integration-engine/commodity-providers/workers/tasks/FetchMeasurementOptionsStaticDataTask.js +14 -25
  27. package/dist/integration-engine/commodity-providers/workers/tasks/FetchMeasurementOptionsStaticDataTask.js.map +1 -1
  28. package/dist/integration-engine/commodity-providers/workers/tasks/FetchMeasurementsFromEEProvidersTask.js +18 -29
  29. package/dist/integration-engine/commodity-providers/workers/tasks/FetchMeasurementsFromEEProvidersTask.js.map +1 -1
  30. package/dist/integration-engine/commodity-providers/workers/tasks/FetchMeasurementsFromProvidersTask.js +30 -41
  31. package/dist/integration-engine/commodity-providers/workers/tasks/FetchMeasurementsFromProvidersTask.js.map +1 -1
  32. package/dist/integration-engine/commodity-providers/workers/tasks/FetchPpasEEMeasurementsTask.js +33 -61
  33. package/dist/integration-engine/commodity-providers/workers/tasks/FetchPpasEEMeasurementsTask.js.map +1 -1
  34. package/dist/integration-engine/commodity-providers/workers/tasks/FetchPpasMeasurementsTask.js +50 -92
  35. package/dist/integration-engine/commodity-providers/workers/tasks/FetchPpasMeasurementsTask.js.map +1 -1
  36. package/dist/integration-engine/commodity-providers/workers/tasks/FetchPreMeasurementDataTask.js +20 -31
  37. package/dist/integration-engine/commodity-providers/workers/tasks/FetchPreMeasurementDataTask.js.map +1 -1
  38. package/dist/integration-engine/commodity-providers/workers/tasks/FetchPtasWebScrapedMeasurementsTask.d.ts +1 -3
  39. package/dist/integration-engine/commodity-providers/workers/tasks/FetchPtasWebScrapedMeasurementsTask.js +27 -38
  40. package/dist/integration-engine/commodity-providers/workers/tasks/FetchPtasWebScrapedMeasurementsTask.js.map +1 -1
  41. package/dist/integration-engine/commodity-providers/workers/tasks/FetchVeoliaMeasurementsTask.js +46 -87
  42. package/dist/integration-engine/commodity-providers/workers/tasks/FetchVeoliaMeasurementsTask.js.map +1 -1
  43. package/dist/integration-engine/commodity-providers/workers/tasks/ProcessPreEanMeasurementsTask.js +13 -24
  44. package/dist/integration-engine/commodity-providers/workers/tasks/ProcessPreEanMeasurementsTask.js.map +1 -1
  45. package/dist/integration-engine/datasources/vpalace/BaseVpalaceFactory.js +8 -12
  46. package/dist/integration-engine/datasources/vpalace/BaseVpalaceFactory.js.map +1 -1
  47. package/dist/integration-engine/datasources/vpalace/VpalaceMeasurementDataSource.js +3 -14
  48. package/dist/integration-engine/datasources/vpalace/VpalaceMeasurementDataSource.js.map +1 -1
  49. package/dist/integration-engine/datasources/vpalace/VpalaceMeasuringEquipmentDataSource.js +3 -14
  50. package/dist/integration-engine/datasources/vpalace/VpalaceMeasuringEquipmentDataSource.js.map +1 -1
  51. package/dist/integration-engine/datasources/vpalace/VpalaceMeterTypeDataSource.js +3 -14
  52. package/dist/integration-engine/datasources/vpalace/VpalaceMeterTypeDataSource.js.map +1 -1
  53. package/dist/integration-engine/datasources/vpalace/VpalaceTypeMeasuringEquipmentDataSource.js +3 -14
  54. package/dist/integration-engine/datasources/vpalace/VpalaceTypeMeasuringEquipmentDataSource.js.map +1 -1
  55. package/dist/integration-engine/datasources/vpalace/VpalaceUnitsDataSource.js +3 -14
  56. package/dist/integration-engine/datasources/vpalace/VpalaceUnitsDataSource.js.map +1 -1
  57. package/dist/integration-engine/helpers/ParserHelpers.js +1 -1
  58. package/dist/integration-engine/helpers/ParserHelpers.js.map +1 -1
  59. package/dist/integration-engine/helpers/UnimonitorCemApiHelper.js +7 -17
  60. package/dist/integration-engine/helpers/UnimonitorCemApiHelper.js.map +1 -1
  61. package/dist/integration-engine/repositories/oict-energetika/AccessLimitationRepository.js +24 -36
  62. package/dist/integration-engine/repositories/oict-energetika/AccessLimitationRepository.js.map +1 -1
  63. package/dist/integration-engine/repositories/oict-energetika/ConsumptionRepository.js +3 -12
  64. package/dist/integration-engine/repositories/oict-energetika/ConsumptionRepository.js.map +1 -1
  65. package/dist/integration-engine/repositories/vpalace/VpalacUnitsRepository.js +4 -13
  66. package/dist/integration-engine/repositories/vpalace/VpalacUnitsRepository.js.map +1 -1
  67. package/dist/integration-engine/repositories/vpalace/VpalaceMeasurementRepository.js +4 -13
  68. package/dist/integration-engine/repositories/vpalace/VpalaceMeasurementRepository.js.map +1 -1
  69. package/dist/integration-engine/repositories/vpalace/VpalaceMeasuringEquipmentRepository.js +4 -13
  70. package/dist/integration-engine/repositories/vpalace/VpalaceMeasuringEquipmentRepository.js.map +1 -1
  71. package/dist/integration-engine/repositories/vpalace/VpalaceMeterTypeRepository.js +4 -13
  72. package/dist/integration-engine/repositories/vpalace/VpalaceMeterTypeRepository.js.map +1 -1
  73. package/dist/integration-engine/repositories/vpalace/VpalaceTypeMeasuringEquipmentRepository.js +4 -13
  74. package/dist/integration-engine/repositories/vpalace/VpalaceTypeMeasuringEquipmentRepository.js.map +1 -1
  75. package/dist/integration-engine/tasks/oict-energetika/FetchAccessConfigurationTask.js +3 -14
  76. package/dist/integration-engine/tasks/oict-energetika/FetchAccessConfigurationTask.js.map +1 -1
  77. package/dist/integration-engine/tasks/oict-energetika/FetchConsumptionTask.js +12 -23
  78. package/dist/integration-engine/tasks/oict-energetika/FetchConsumptionTask.js.map +1 -1
  79. package/dist/integration-engine/tasks/oict-energetika/FetchDataTask.js +4 -15
  80. package/dist/integration-engine/tasks/oict-energetika/FetchDataTask.js.map +1 -1
  81. package/dist/integration-engine/tasks/vpalace/FetchDateFactory.js +15 -26
  82. package/dist/integration-engine/tasks/vpalace/FetchDateFactory.js.map +1 -1
  83. package/dist/integration-engine/tasks/vpalace/FetchXDaysDataTask.js +18 -29
  84. package/dist/integration-engine/tasks/vpalace/FetchXDaysDataTask.js.map +1 -1
  85. package/dist/integration-engine/tasks/vpalace/FetchXHoursDataTask.js +15 -26
  86. package/dist/integration-engine/tasks/vpalace/FetchXHoursDataTask.js.map +1 -1
  87. package/dist/integration-engine/tasks/vpalace/MeasurementDataFetcher.js +5 -14
  88. package/dist/integration-engine/tasks/vpalace/MeasurementDataFetcher.js.map +1 -1
  89. package/dist/integration-engine/tasks/vpalace/MeasuringEquipmentFetcher.js +5 -14
  90. package/dist/integration-engine/tasks/vpalace/MeasuringEquipmentFetcher.js.map +1 -1
  91. package/dist/integration-engine/tasks/vpalace/MeterTypeFetcher.js +5 -14
  92. package/dist/integration-engine/tasks/vpalace/MeterTypeFetcher.js.map +1 -1
  93. package/dist/integration-engine/tasks/vpalace/TypeMeasuringEquipmentFetcher.js +5 -14
  94. package/dist/integration-engine/tasks/vpalace/TypeMeasuringEquipmentFetcher.js.map +1 -1
  95. package/dist/integration-engine/tasks/vpalace/UnitDataFetcher.js +5 -14
  96. package/dist/integration-engine/tasks/vpalace/UnitDataFetcher.js.map +1 -1
  97. package/dist/integration-engine/transformations/oict-energetika/ConsumptionTransformation.js +2 -11
  98. package/dist/integration-engine/transformations/oict-energetika/ConsumptionTransformation.js.map +1 -1
  99. package/dist/integration-engine/transformations/vpalace/VpalacMeasuringEquipmentTransformation.js +2 -11
  100. package/dist/integration-engine/transformations/vpalace/VpalacMeasuringEquipmentTransformation.js.map +1 -1
  101. package/dist/integration-engine/transformations/vpalace/VpalacMeterTypeTransformation.js +2 -11
  102. package/dist/integration-engine/transformations/vpalace/VpalacMeterTypeTransformation.js.map +1 -1
  103. package/dist/integration-engine/transformations/vpalace/VpalacTypeMeasuringEquipmentTransformation.js +2 -11
  104. package/dist/integration-engine/transformations/vpalace/VpalacTypeMeasuringEquipmentTransformation.js.map +1 -1
  105. package/dist/integration-engine/transformations/vpalace/VpalacUnitsTransformation.js +2 -11
  106. package/dist/integration-engine/transformations/vpalace/VpalacUnitsTransformation.js.map +1 -1
  107. package/dist/output-gateway/controllers/v2/AbstractController.js +6 -17
  108. package/dist/output-gateway/controllers/v2/AbstractController.js.map +1 -1
  109. package/dist/output-gateway/controllers/v2/BuildingsController.js +15 -24
  110. package/dist/output-gateway/controllers/v2/BuildingsController.js.map +1 -1
  111. package/dist/output-gateway/controllers/v2/V2DevicesController.js +8 -17
  112. package/dist/output-gateway/controllers/v2/V2DevicesController.js.map +1 -1
  113. package/dist/output-gateway/controllers/v2/V2MeasurementsController.js +18 -19
  114. package/dist/output-gateway/controllers/v2/V2MeasurementsController.js.map +1 -1
  115. package/dist/output-gateway/controllers/v2/V2OrganizationsController.js +9 -18
  116. package/dist/output-gateway/controllers/v2/V2OrganizationsController.js.map +1 -1
  117. package/dist/output-gateway/repositories/AccessLimitationRepository.js +13 -24
  118. package/dist/output-gateway/repositories/AccessLimitationRepository.js.map +1 -1
  119. package/dist/output-gateway/repositories/DevicesRepository.js +26 -39
  120. package/dist/output-gateway/repositories/DevicesRepository.js.map +1 -1
  121. package/dist/output-gateway/repositories/MeasurementRepository.js +49 -66
  122. package/dist/output-gateway/repositories/MeasurementRepository.js.map +1 -1
  123. package/dist/output-gateway/repositories/OrganizationBuildingsRepository.js +4 -17
  124. package/dist/output-gateway/repositories/OrganizationBuildingsRepository.js.map +1 -1
  125. package/dist/output-gateway/repositories/OrganizationResponsibleUsersRepository.js +4 -17
  126. package/dist/output-gateway/repositories/OrganizationResponsibleUsersRepository.js.map +1 -1
  127. package/dist/output-gateway/repositories/OrganizationsRepository.js +67 -82
  128. package/dist/output-gateway/repositories/OrganizationsRepository.js.map +1 -1
  129. package/dist/output-gateway/repositories/PrimaryBuildingsRepository.js +37 -52
  130. package/dist/output-gateway/repositories/PrimaryBuildingsRepository.js.map +1 -1
  131. package/dist/output-gateway/transformations/BuildingTransformationFull.js +114 -115
  132. package/dist/output-gateway/transformations/BuildingTransformationFull.js.map +1 -1
  133. package/dist/output-gateway/transformations/BuildingsTransformation.js +2 -3
  134. package/dist/output-gateway/transformations/BuildingsTransformation.js.map +1 -1
  135. package/dist/output-gateway/transformations/OrganizationDetailDtoTransformation.js +1 -2
  136. package/dist/output-gateway/transformations/OrganizationDetailDtoTransformation.js.map +1 -1
  137. package/dist/schema-definitions/datasources/interfaces/IStaticMeterSettings.d.ts +3 -0
  138. package/dist/schema-definitions/models/helpers/StaticDataResourceTypeEnum.d.ts +2 -1
  139. package/dist/schema-definitions/models/helpers/StaticDataResourceTypeEnum.js +1 -0
  140. package/dist/schema-definitions/models/helpers/StaticDataResourceTypeEnum.js.map +1 -1
  141. package/dist/schema-definitions/models/interfaces/IStaticDataOutputDto.d.ts +2 -1
  142. package/docs/implementation_documentation.md +1 -0
  143. package/package.json +4 -4
@@ -11,34 +11,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
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
- var __asyncValues = (this && this.__asyncValues) || function (o) {
24
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
25
- var m = o[Symbol.asyncIterator], i;
26
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
27
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
28
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
29
- };
30
- var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
31
- var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
32
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
33
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
34
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
35
- function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
36
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
37
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
38
- function fulfill(value) { resume("next", value); }
39
- function reject(value) { resume("throw", value); }
40
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
41
- };
42
14
  Object.defineProperty(exports, "__esModule", { value: true });
43
15
  exports.FetchPpasMeasurementsTask = void 0;
44
16
  const CommodityProviderEnum_1 = require("../../datasources/helpers/CommodityProviderEnum");
@@ -68,54 +40,42 @@ let FetchPpasMeasurementsTask = exports.FetchPpasMeasurementsTask = class FetchP
68
40
  this.queueTtl = 60 * 60 * 1000;
69
41
  this.schema = PpasMeasurementsSchema_1.PpasMeasurementsValidationSchema;
70
42
  }
71
- execute(data) {
72
- var _a, e_1, _b, _c;
73
- return __awaiter(this, void 0, void 0, function* () {
74
- let measurementOptions = yield this.meterSettingsRepository.getData(data.providerType, StaticDataResourceTypeEnum_1.StaticDataResourceType.MeasurementOptions);
75
- if (!measurementOptions) {
76
- throw new golemio_errors_1.GeneralError("Measurement options not found", this.constructor.name);
77
- }
78
- else {
79
- measurementOptions = this.splitOptionsByVars(measurementOptions);
80
- }
81
- const { baseUrl, config } = this.getProviderConfig(data);
82
- const aveApiHelper = new PpasAveApiHelper_1.PpasAveApiHelper(baseUrl, config);
83
- const sessionId = yield aveApiHelper.createSession();
84
- try {
85
- const places = yield this.getDataFromDataSource("Places", sessionId);
86
- let consumptionData = [];
87
- for (const place of places) {
88
- const options = measurementOptions.filter((item) => item.MeterSerialNumber === place.DeviceSerialNumber);
89
- if (options.length === 0) {
90
- continue;
91
- }
92
- this.logger.info(`Fetching data for device ${place.DeviceSerialNumber}`);
93
- const measurementChunkGenerator = this.generateMeasurements(Object.assign(Object.assign({}, data), { placeId: place.Id }), sessionId);
94
- try {
95
- for (var _d = true, measurementChunkGenerator_1 = (e_1 = void 0, __asyncValues(measurementChunkGenerator)), measurementChunkGenerator_1_1; measurementChunkGenerator_1_1 = yield measurementChunkGenerator_1.next(), _a = measurementChunkGenerator_1_1.done, !_a; _d = true) {
96
- _c = measurementChunkGenerator_1_1.value;
97
- _d = false;
98
- const measurements = _c;
99
- for (const option of options) {
100
- const consumptionBatch = measurements.map((item) => this.measurementTransformation.transformElement(Object.assign(Object.assign({}, item), option)));
101
- consumptionData = consumptionData.concat(consumptionBatch);
102
- }
103
- }
104
- }
105
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
106
- finally {
107
- try {
108
- if (!_d && !_a && (_b = measurementChunkGenerator_1.return)) yield _b.call(measurementChunkGenerator_1);
109
- }
110
- finally { if (e_1) throw e_1.error; }
43
+ async execute(data) {
44
+ let measurementOptions = await this.meterSettingsRepository.getData(data.providerType, StaticDataResourceTypeEnum_1.StaticDataResourceType.MeasurementOptions);
45
+ if (!measurementOptions) {
46
+ throw new golemio_errors_1.GeneralError("Measurement options not found", this.constructor.name);
47
+ }
48
+ else {
49
+ measurementOptions = this.splitOptionsByVars(measurementOptions);
50
+ }
51
+ const { baseUrl, config } = this.getProviderConfig(data);
52
+ const aveApiHelper = new PpasAveApiHelper_1.PpasAveApiHelper(baseUrl, config);
53
+ const sessionId = await aveApiHelper.createSession();
54
+ try {
55
+ const places = await this.getDataFromDataSource("Places", sessionId);
56
+ let consumptionData = [];
57
+ for (const place of places) {
58
+ const options = measurementOptions.filter((item) => item.MeterSerialNumber === place.DeviceSerialNumber);
59
+ if (options.length === 0) {
60
+ continue;
61
+ }
62
+ this.logger.info(`Fetching data for device ${place.DeviceSerialNumber}`);
63
+ const measurementChunkGenerator = this.generateMeasurements({ ...data, placeId: place.Id }, sessionId);
64
+ for await (const measurements of measurementChunkGenerator) {
65
+ for (const option of options) {
66
+ const consumptionBatch = measurements.map((item) => this.measurementTransformation.transformElement({
67
+ ...item,
68
+ ...option,
69
+ }));
70
+ consumptionData = consumptionData.concat(consumptionBatch);
111
71
  }
112
72
  }
113
- yield this.saveConsumptionData(consumptionData);
114
73
  }
115
- finally {
116
- yield aveApiHelper.terminateSession(sessionId);
117
- }
118
- });
74
+ await this.saveConsumptionData(consumptionData);
75
+ }
76
+ finally {
77
+ await aveApiHelper.terminateSession(sessionId);
78
+ }
119
79
  }
120
80
  getProviderConfig(data) {
121
81
  return {
@@ -128,28 +88,26 @@ let FetchPpasMeasurementsTask = exports.FetchPpasMeasurementsTask = class FetchP
128
88
  let result = [];
129
89
  for (const option of options) {
130
90
  const vars = option.Var.split("|");
131
- result = result.concat(vars.map((v) => (Object.assign(Object.assign({}, option), { Var: v }))));
91
+ result = result.concat(vars.map((v) => ({ ...option, Var: v })));
132
92
  }
133
93
  return result;
134
94
  }
135
- generateMeasurements(data, sessionId) {
136
- return __asyncGenerator(this, arguments, function* generateMeasurements_1() {
137
- const dateFrom = luxon_1.DateTime.fromISO(data.dateFrom).startOf("day");
138
- const dateTo = luxon_1.DateTime.fromISO(data.dateTo).startOf("day");
139
- const intervals = luxon_1.Interval.fromDateTimes(dateFrom, dateTo).splitBy({ days: 5 });
140
- for (const interval of intervals) {
141
- const start = interval.start.startOf("day");
142
- const end = interval.end.startOf("day");
143
- yield yield __await(this.getDataFromDataSource("DeviceData", sessionId, {
144
- placeId: data.placeId,
145
- dateFrom: start.toISODate(),
146
- dateTo: end.toISODate(),
147
- isoDate: "1",
148
- // fill all measurement values (we need the OperatingAmount and ConvertDifference values)
149
- dataType: AveDataTypeEnum_1.AveDataType.RawData.toString(),
150
- }));
151
- }
152
- });
95
+ async *generateMeasurements(data, sessionId) {
96
+ const dateFrom = luxon_1.DateTime.fromISO(data.dateFrom).startOf("day");
97
+ const dateTo = luxon_1.DateTime.fromISO(data.dateTo).startOf("day");
98
+ const intervals = luxon_1.Interval.fromDateTimes(dateFrom, dateTo).splitBy({ days: 5 });
99
+ for (const interval of intervals) {
100
+ const start = interval.start.startOf("day");
101
+ const end = interval.end.startOf("day");
102
+ yield this.getDataFromDataSource("DeviceData", sessionId, {
103
+ placeId: data.placeId,
104
+ dateFrom: start.toISODate(),
105
+ dateTo: end.toISODate(),
106
+ isoDate: "1",
107
+ // fill all measurement values (we need the OperatingAmount and ConvertDifference values)
108
+ dataType: AveDataTypeEnum_1.AveDataType.RawData.toString(),
109
+ });
110
+ }
153
111
  }
154
112
  getDataFromDataSource(resourceTypeKey, sessionId, params) {
155
113
  const dataSource = this.dataSourceFactory.getDataSource(CommodityProviderEnum_1.CommodityProvider.PpasInternetAveApi, PpasAveApiHelper_1.PpasAveApiHelper.resourceType[resourceTypeKey], sessionId, params);
@@ -1 +1 @@
1
- {"version":3,"file":"FetchPpasMeasurementsTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/FetchPpasMeasurementsTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FetchPpasMeasurementsTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/FetchPpasMeasurementsTask.ts"],"names":[],"mappings":"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"}
@@ -11,15 +11,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
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
14
  Object.defineProperty(exports, "__esModule", { value: true });
24
15
  exports.FetchPreMeasurementDataTask = void 0;
25
16
  const constants_1 = require("../../constants");
@@ -47,30 +38,28 @@ let FetchPreMeasurementDataTask = exports.FetchPreMeasurementDataTask = class Fe
47
38
  this.queueName = "fetchPreElectroMeasurementsTask";
48
39
  this.queueTtl = 60 * 60 * 1000;
49
40
  }
50
- execute(data) {
51
- return __awaiter(this, void 0, void 0, function* () {
52
- const measurementOptions = yield this.meterSettingsRepository.getData(CommodityProviderTypeEnum_1.CommodityProviderType.PreOptions, StaticDataResourceTypeEnum_1.StaticDataResourceType.MeasurementOptions);
53
- if (!measurementOptions) {
54
- throw new golemio_errors_1.GeneralError("Measurement options not found", this.constructor.name);
55
- }
56
- const files = yield this.helper.filterFilesByDate(data.dateFrom, data.dateTo);
57
- if (!files) {
58
- throw new golemio_errors_1.GeneralError("No files to import", this.constructor.name);
59
- }
60
- for (const file of files) {
61
- let batch = [];
62
- const { data: measurements } = yield this.dataSourceProvider.getMeasurements(file);
63
- for (const measurement of measurements) {
64
- const option = measurementOptions.find((item) => item.MeterSerialNumber === measurement["ELM"] && item.Meter === measurement["EAN"]);
65
- if (!option) {
66
- continue;
67
- }
68
- const consumptionData = this.transformation.transformElement({ option, measurement });
69
- batch.push(consumptionData);
41
+ async execute(data) {
42
+ const measurementOptions = await this.meterSettingsRepository.getData(CommodityProviderTypeEnum_1.CommodityProviderType.PreOptions, StaticDataResourceTypeEnum_1.StaticDataResourceType.MeasurementOptions);
43
+ if (!measurementOptions) {
44
+ throw new golemio_errors_1.GeneralError("Measurement options not found", this.constructor.name);
45
+ }
46
+ const files = await this.helper.filterFilesByDate(data.dateFrom, data.dateTo);
47
+ if (!files) {
48
+ throw new golemio_errors_1.GeneralError("No files to import", this.constructor.name);
49
+ }
50
+ for (const file of files) {
51
+ let batch = [];
52
+ const { data: measurements } = await this.dataSourceProvider.getMeasurements(file);
53
+ for (const measurement of measurements) {
54
+ const option = measurementOptions.find((item) => item.MeterSerialNumber === measurement["ELM"] && item.Meter === measurement["EAN"]);
55
+ if (!option) {
56
+ continue;
70
57
  }
71
- yield this.measurementRepository.bulkSave(batch);
58
+ const consumptionData = this.transformation.transformElement({ option, measurement });
59
+ batch.push(consumptionData);
72
60
  }
73
- });
61
+ await this.measurementRepository.bulkSave(batch);
62
+ }
74
63
  }
75
64
  };
76
65
  exports.FetchPreMeasurementDataTask = FetchPreMeasurementDataTask = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"FetchPreMeasurementDataTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/FetchPreMeasurementDataTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FetchPreMeasurementDataTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/FetchPreMeasurementDataTask.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { PreElectroHelper } from "../../datasources/pre-elektro-api/helpers/PreElectroHelper";
2
1
  import { MeasurementRepository } from "../../repositories/MeasurementRepository";
3
2
  import { StaticMeterSettingsRepository } from "../../repositories/StaticMeterSettingsRepository";
4
3
  import { PtasWebMeasurementTransformation } from "../../transformations/PtasWebMeasurementTransformation";
@@ -11,11 +10,10 @@ export declare class FetchPtasWebScrapedMeasurementsTask extends AbstractTaskJso
11
10
  private meterSettingsRepository;
12
11
  protected measurementRepository: MeasurementRepository;
13
12
  protected transformation: PtasWebMeasurementTransformation;
14
- protected helper: PreElectroHelper;
15
13
  protected schema: JSONSchemaValidator;
16
14
  readonly queueName = "savePtasMeasurements";
17
15
  readonly queueTtl: number;
18
- constructor(logger: ILogger, meterSettingsRepository: StaticMeterSettingsRepository, measurementRepository: MeasurementRepository, transformation: PtasWebMeasurementTransformation, helper: PreElectroHelper);
16
+ constructor(logger: ILogger, meterSettingsRepository: StaticMeterSettingsRepository, measurementRepository: MeasurementRepository, transformation: PtasWebMeasurementTransformation);
19
17
  protected execute(data: IPtasWebScrapingInput): Promise<void>;
20
18
  private handleDuplicates;
21
19
  }
@@ -11,19 +11,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
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
14
  Object.defineProperty(exports, "__esModule", { value: true });
24
15
  exports.FetchPtasWebScrapedMeasurementsTask = void 0;
25
16
  const constants_1 = require("../../constants");
26
- const PreElectroHelper_1 = require("../../datasources/pre-elektro-api/helpers/PreElectroHelper");
27
17
  const WorkerContainerToken_1 = require("../../ioc/WorkerContainerToken");
28
18
  const MeasurementRepository_1 = require("../../repositories/MeasurementRepository");
29
19
  const StaticMeterSettingsRepository_1 = require("../../repositories/StaticMeterSettingsRepository");
@@ -37,43 +27,44 @@ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
37
27
  const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
38
28
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
39
29
  let FetchPtasWebScrapedMeasurementsTask = exports.FetchPtasWebScrapedMeasurementsTask = class FetchPtasWebScrapedMeasurementsTask extends AbstractTaskJsonSchema_1.AbstractTaskJsonSchema {
40
- constructor(logger, meterSettingsRepository, measurementRepository, transformation, helper) {
30
+ constructor(logger, meterSettingsRepository, measurementRepository, transformation) {
41
31
  super(constants_1.WORKER_NAME);
42
32
  this.logger = logger;
43
33
  this.meterSettingsRepository = meterSettingsRepository;
44
34
  this.measurementRepository = measurementRepository;
45
35
  this.transformation = transformation;
46
- this.helper = helper;
47
36
  this.schema = new golemio_validator_1.JSONSchemaValidator("FetchPtasWebScrapedMeasurementsTask", PtasWebScrapingJsonSchema_1.ptasWebScrapingJsonSchema);
48
37
  this.queueName = "savePtasMeasurements";
49
38
  this.queueTtl = 60 * 60 * 1000;
50
39
  }
51
- execute(data) {
52
- return __awaiter(this, void 0, void 0, function* () {
53
- const measurementOptions = yield this.meterSettingsRepository.getData(CommodityProviderTypeEnum_1.CommodityProviderType.PtasOptions, StaticDataResourceTypeEnum_1.StaticDataResourceType.MeasurementOptions);
54
- if (!measurementOptions) {
55
- throw new golemio_errors_1.GeneralError("Measurement options not found", this.constructor.name);
56
- }
57
- //podle původního scraperu z C# bereme pouze teplo horké vody
58
- let hotWaterMeasurements = data.measurements.filter((item) => item["Druh registru"] === "Teplo horké vody");
59
- hotWaterMeasurements = this.handleDuplicates(data["placeId"], hotWaterMeasurements);
60
- let batch = [];
61
- for (const measurement of hotWaterMeasurements) {
62
- const option = measurementOptions.find((item) => item.Meter === data["placeId"]);
63
- if (!option) {
64
- this.logger.warn(`Incoming Meter id ${data["placeId"]} is missing in the static data file (measurement options).`);
65
- continue;
66
- }
67
- const consumptionData = this.transformation.transformElement({ option, measurement });
68
- batch.push(consumptionData);
40
+ async execute(data) {
41
+ const measurementOptions = await this.meterSettingsRepository.getData(CommodityProviderTypeEnum_1.CommodityProviderType.PtasOptions, StaticDataResourceTypeEnum_1.StaticDataResourceType.MeasurementOptions);
42
+ if (!measurementOptions) {
43
+ throw new golemio_errors_1.GeneralError("Measurement options not found", this.constructor.name);
44
+ }
45
+ const selectedMeters = await this.meterSettingsRepository.getData(CommodityProviderTypeEnum_1.CommodityProviderType.PtasOptions, StaticDataResourceTypeEnum_1.StaticDataResourceType.SelectedMeters);
46
+ if (!selectedMeters) {
47
+ throw new golemio_errors_1.GeneralError("Static data of selected meters not found", this.constructor.name);
48
+ }
49
+ //podle původního scraperu z C# bereme pouze teplo horké vody
50
+ let hotWaterMeasurements = data.measurements.filter((item) => item["Druh registru"] === "Teplo horké vody");
51
+ hotWaterMeasurements = this.handleDuplicates(data["placeId"], hotWaterMeasurements, selectedMeters);
52
+ let batch = [];
53
+ for (const measurement of hotWaterMeasurements) {
54
+ const option = measurementOptions.find((item) => item.Meter === data["placeId"]);
55
+ if (!option) {
56
+ this.logger.warn(`Incoming Meter id ${data["placeId"]} is missing in the static data file (measurement options).`);
57
+ continue;
69
58
  }
70
- yield this.measurementRepository.bulkSave(batch);
71
- });
59
+ const consumptionData = this.transformation.transformElement({ option, measurement });
60
+ batch.push(consumptionData);
61
+ }
62
+ await this.measurementRepository.bulkSave(batch);
72
63
  }
73
64
  // temporary solution to finish project "převzetí energetické databáze"
74
- handleDuplicates(placeId, measurements) {
75
- if (placeId === "3050028") {
76
- return measurements.filter((item) => item["Výrobní číslo"] === "69112600");
65
+ handleDuplicates(placeId, measurements, selectedMeters) {
66
+ if (Object.keys(selectedMeters).includes(placeId)) {
67
+ return measurements.filter((item) => item["Výrobní číslo"] === selectedMeters[placeId]);
77
68
  }
78
69
  // create list of unique item["Výrobní číslo"]
79
70
  const uniqueSerialNumbers = Array.from(new Set(measurements.map((item) => item["Výrobní číslo"])));
@@ -89,10 +80,8 @@ exports.FetchPtasWebScrapedMeasurementsTask = FetchPtasWebScrapedMeasurementsTas
89
80
  __param(1, (0, tsyringe_1.inject)(WorkerContainerToken_1.WorkerContainerToken.StaticMeterSettingsRepository)),
90
81
  __param(2, (0, tsyringe_1.inject)(WorkerContainerToken_1.WorkerContainerToken.MeasurementRepository)),
91
82
  __param(3, (0, tsyringe_1.inject)(WorkerContainerToken_1.WorkerContainerToken.PtasWebMeasurementTransformation)),
92
- __param(4, (0, tsyringe_1.inject)(WorkerContainerToken_1.WorkerContainerToken.PreElectroHelper)),
93
83
  __metadata("design:paramtypes", [Object, StaticMeterSettingsRepository_1.StaticMeterSettingsRepository,
94
84
  MeasurementRepository_1.MeasurementRepository,
95
- PtasWebMeasurementTransformation_1.PtasWebMeasurementTransformation,
96
- PreElectroHelper_1.PreElectroHelper])
85
+ PtasWebMeasurementTransformation_1.PtasWebMeasurementTransformation])
97
86
  ], FetchPtasWebScrapedMeasurementsTask);
98
87
  //# sourceMappingURL=FetchPtasWebScrapedMeasurementsTask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FetchPtasWebScrapedMeasurementsTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/FetchPtasWebScrapedMeasurementsTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgE;AAChE,iGAAgH;AAChH,yEAAwF;AACxF,oFAAmG;AACnG,oGAAmH;AACnH,6GAA4H;AAC5H,oHAAuF;AAGvF,uHAAsF;AACtF,yHAAwF;AACxF,wEAAqE;AAErE,iHAA8G;AAC9G,6EAAwE;AACxE,mFAAkF;AAClF,iEAAwE;AAEjE,IAAM,mCAAmC,iDAAzC,MAAM,mCAAoC,SAAQ,+CAA6C;IAKlG,YAC8B,MAAuB,EAEjD,uBAA8D,EACV,qBAAsD,EAC3C,cAA0D,EAEzH,MAAkC;QAElC,KAAK,CAAC,uBAAW,CAAC,CAAC;QARe,WAAM,GAAN,MAAM,CAAS;QAEzC,4BAAuB,GAAvB,uBAAuB,CAA+B;QACA,0BAAqB,GAArB,qBAAqB,CAAuB;QACjC,mBAAc,GAAd,cAAc,CAAkC;QAE/G,WAAM,GAAN,MAAM,CAAkB;QAX5B,WAAM,GAAG,IAAI,uCAAmB,CAAC,qCAAqC,EAAE,qDAAyB,CAAC,CAAC;QAC7F,cAAS,GAAG,sBAAsB,CAAC;QACnC,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAY1C,CAAC;IAEe,OAAO,CAAC,IAA2B;;YAC/C,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CACjE,iDAAqB,CAAC,WAAW,EACjC,mDAAsB,CAAC,kBAAkB,CAC5C,CAAC;YAEF,IAAI,CAAC,kBAAkB,EAAE;gBACrB,MAAM,IAAI,6BAAY,CAAC,+BAA+B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAClF;YAED,6DAA6D;YAC7D,IAAI,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,kBAAkB,CAAC,CAAC;YAC5G,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAC,CAAC;YAEpF,IAAI,KAAK,GAAG,EAAE,CAAC;YAEf,KAAK,MAAM,WAAW,IAAI,oBAAoB,EAAE;gBAC5C,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBAErG,IAAI,CAAC,MAAM,EAAE;oBACT,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,qBAAqB,IAAI,CAAC,SAAS,CAAC,4DAA4D,CACnG,CAAC;oBACF,SAAS;iBACZ;gBAED,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;gBAEtF,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aAC/B;YAED,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;KAAA;IAED,uEAAuE;IAC/D,gBAAgB,CAAC,OAAe,EAAE,YAAgC;QACtE,IAAI,OAAO,KAAK,SAAS,EAAE;YACvB,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,UAAU,CAAC,CAAC;SAC9E;QACD,8CAA8C;QAC9C,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnG,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8DAA8D,OAAO,GAAG,CAAC,CAAC;SAC9F;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ,CAAA;8CAjEY,mCAAmC;IAD/C,IAAA,qBAAU,GAAE;IAOJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;IACxB,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,6BAA6B,CAAC,CAAA;IAE1D,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,qBAAqB,CAAC,CAAA;IAClD,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,gCAAgC,CAAC,CAAA;IAC7D,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,gBAAgB,CAAC,CAAA;6CAHb,6DAA6B;QACuB,6CAAqB;QACjB,mEAAgC;QAEvG,mCAAgB;GAZ7B,mCAAmC,CAiE/C"}
1
+ {"version":3,"file":"FetchPtasWebScrapedMeasurementsTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/FetchPtasWebScrapedMeasurementsTask.ts"],"names":[],"mappings":"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"}
@@ -11,34 +11,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
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
- var __asyncValues = (this && this.__asyncValues) || function (o) {
24
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
25
- var m = o[Symbol.asyncIterator], i;
26
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
27
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
28
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
29
- };
30
- var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
31
- var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
32
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
33
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
34
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
35
- function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
36
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
37
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
38
- function fulfill(value) { resume("next", value); }
39
- function reject(value) { resume("throw", value); }
40
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
41
- };
42
14
  Object.defineProperty(exports, "__esModule", { value: true });
43
15
  exports.FetchVeoliaMeasurementsTask = void 0;
44
16
  const CommodityProviderEnum_1 = require("../../datasources/helpers/CommodityProviderEnum");
@@ -67,53 +39,42 @@ let FetchVeoliaMeasurementsTask = exports.FetchVeoliaMeasurementsTask = class Fe
67
39
  this.queueTtl = 60 * 60 * 1000;
68
40
  this.schema = VeoliaMeasurementsSchema_1.VeoliaMeasurementsValidationSchema;
69
41
  }
70
- execute(data) {
71
- var _a, e_1, _b, _c;
72
- return __awaiter(this, void 0, void 0, function* () {
73
- const measurementOptions = yield this.meterSettingsRepository.getData(data.providerType, StaticDataResourceTypeEnum_1.StaticDataResourceType.MeasurementOptions);
74
- if (!measurementOptions) {
75
- throw new golemio_errors_1.GeneralError("Measurement options not found", this.constructor.name);
76
- }
77
- const { url, config } = this.getProviderConfig(data);
78
- const cemApiHelper = new helpers_1.UnimonitorCemApiHelper(url, config);
79
- const authCookie = yield cemApiHelper.createSession();
80
- try {
81
- const devices = yield this.getDataFromDataSource("Devices", authCookie);
82
- const counters = yield this.getDataFromDataSource("Counters", authCookie);
83
- let consumptionData = [];
84
- for (const device of devices) {
85
- const options = measurementOptions.find((item) => item.MeterSerialNumber === device.me_serial);
86
- if (!options) {
87
- continue;
88
- }
89
- const relevantCounters = counters.filter((item) => item.me_id === device.me_id);
90
- for (const counter of relevantCounters) {
91
- this.logger.info(`Fetching data for device ${device.me_serial} and counter ${counter.var_id}`);
92
- const measurementChunkGenerator = this.generateMeasurements(Object.assign(Object.assign({}, data), { counterId: counter.var_id }), authCookie);
93
- try {
94
- for (var _d = true, measurementChunkGenerator_1 = (e_1 = void 0, __asyncValues(measurementChunkGenerator)), measurementChunkGenerator_1_1; measurementChunkGenerator_1_1 = yield measurementChunkGenerator_1.next(), _a = measurementChunkGenerator_1_1.done, !_a; _d = true) {
95
- _c = measurementChunkGenerator_1_1.value;
96
- _d = false;
97
- const measurements = _c;
98
- const consumptionBatch = measurements.map((item) => this.measurementTransformation.transformElement(Object.assign(Object.assign(Object.assign({}, item), options), { counterTypeId: counter.pot_id })));
99
- consumptionData = consumptionData.concat(consumptionBatch);
100
- }
101
- }
102
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
103
- finally {
104
- try {
105
- if (!_d && !_a && (_b = measurementChunkGenerator_1.return)) yield _b.call(measurementChunkGenerator_1);
106
- }
107
- finally { if (e_1) throw e_1.error; }
108
- }
42
+ async execute(data) {
43
+ const measurementOptions = await this.meterSettingsRepository.getData(data.providerType, StaticDataResourceTypeEnum_1.StaticDataResourceType.MeasurementOptions);
44
+ if (!measurementOptions) {
45
+ throw new golemio_errors_1.GeneralError("Measurement options not found", this.constructor.name);
46
+ }
47
+ const { url, config } = this.getProviderConfig(data);
48
+ const cemApiHelper = new helpers_1.UnimonitorCemApiHelper(url, config);
49
+ const authCookie = await cemApiHelper.createSession();
50
+ try {
51
+ const devices = await this.getDataFromDataSource("Devices", authCookie);
52
+ const counters = await this.getDataFromDataSource("Counters", authCookie);
53
+ let consumptionData = [];
54
+ for (const device of devices) {
55
+ const options = measurementOptions.find((item) => item.MeterSerialNumber === device.me_serial);
56
+ if (!options) {
57
+ continue;
58
+ }
59
+ const relevantCounters = counters.filter((item) => item.me_id === device.me_id);
60
+ for (const counter of relevantCounters) {
61
+ this.logger.info(`Fetching data for device ${device.me_serial} and counter ${counter.var_id}`);
62
+ const measurementChunkGenerator = this.generateMeasurements({ ...data, counterId: counter.var_id }, authCookie);
63
+ for await (const measurements of measurementChunkGenerator) {
64
+ const consumptionBatch = measurements.map((item) => this.measurementTransformation.transformElement({
65
+ ...item,
66
+ ...options,
67
+ counterTypeId: counter.pot_id,
68
+ }));
69
+ consumptionData = consumptionData.concat(consumptionBatch);
109
70
  }
110
71
  }
111
- yield this.saveConsumptionData(consumptionData, true);
112
72
  }
113
- finally {
114
- yield cemApiHelper.terminateSession(authCookie);
115
- }
116
- });
73
+ await this.saveConsumptionData(consumptionData, true);
74
+ }
75
+ finally {
76
+ await cemApiHelper.terminateSession(authCookie);
77
+ }
117
78
  }
118
79
  getProviderConfig(data) {
119
80
  return {
@@ -121,21 +82,19 @@ let FetchVeoliaMeasurementsTask = exports.FetchVeoliaMeasurementsTask = class Fe
121
82
  config: this.config.getValue(`module.energetics.commodityProviders.${data.providerType}`),
122
83
  };
123
84
  }
124
- generateMeasurements(data, authCookie) {
125
- return __asyncGenerator(this, arguments, function* generateMeasurements_1() {
126
- const dateFrom = luxon_1.DateTime.fromISO(data.dateFrom).startOf("day");
127
- const dateTo = luxon_1.DateTime.fromISO(data.dateTo).startOf("day");
128
- const intervals = luxon_1.Interval.fromDateTimes(dateFrom, dateTo).splitBy({ days: 5 });
129
- for (const interval of intervals) {
130
- const start = interval.start.startOf("day");
131
- const end = interval.end.startOf("day");
132
- yield yield __await(this.getDataFromDataSource("MeasurementsByCounter", authCookie, {
133
- counterId: data.counterId,
134
- dateFrom: start.toISODate(),
135
- dateTo: end.toISODate(),
136
- }));
137
- }
138
- });
85
+ async *generateMeasurements(data, authCookie) {
86
+ const dateFrom = luxon_1.DateTime.fromISO(data.dateFrom).startOf("day");
87
+ const dateTo = luxon_1.DateTime.fromISO(data.dateTo).startOf("day");
88
+ const intervals = luxon_1.Interval.fromDateTimes(dateFrom, dateTo).splitBy({ days: 5 });
89
+ for (const interval of intervals) {
90
+ const start = interval.start.startOf("day");
91
+ const end = interval.end.startOf("day");
92
+ yield this.getDataFromDataSource("MeasurementsByCounter", authCookie, {
93
+ counterId: data.counterId,
94
+ dateFrom: start.toISODate(),
95
+ dateTo: end.toISODate(),
96
+ });
97
+ }
139
98
  }
140
99
  getDataFromDataSource(resourceTypeKey, authCookie, params) {
141
100
  const dataSource = this.dataSourceFactory.getDataSource(CommodityProviderEnum_1.CommodityProvider.UnimonitorCemApi, helpers_1.UnimonitorCemApiHelper.resourceType[resourceTypeKey], authCookie, params);