@golemio/bicycle-counters 1.2.4 → 1.2.5-dev.905379826

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 (89) hide show
  1. package/dist/integration-engine/datasources/CameaCountersMeasurementsDataSource.d.ts +4 -0
  2. package/dist/integration-engine/datasources/CameaCountersMeasurementsDataSource.js +13 -0
  3. package/dist/integration-engine/datasources/CameaCountersMeasurementsDataSource.js.map +1 -0
  4. package/dist/integration-engine/datasources/CameaDataSource.d.ts +4 -0
  5. package/dist/integration-engine/datasources/CameaDataSource.js +17 -0
  6. package/dist/integration-engine/datasources/CameaDataSource.js.map +1 -0
  7. package/dist/integration-engine/datasources/EcoCounterMeasurementsDataSource.d.ts +4 -0
  8. package/dist/integration-engine/datasources/EcoCounterMeasurementsDataSource.js +13 -0
  9. package/dist/integration-engine/datasources/EcoCounterMeasurementsDataSource.js.map +1 -0
  10. package/dist/integration-engine/datasources/EcoCountersDataSource.d.ts +4 -0
  11. package/dist/integration-engine/datasources/EcoCountersDataSource.js +19 -0
  12. package/dist/integration-engine/datasources/EcoCountersDataSource.js.map +1 -0
  13. package/dist/integration-engine/datasources/index.d.ts +4 -0
  14. package/dist/integration-engine/datasources/index.js +22 -0
  15. package/dist/integration-engine/datasources/index.js.map +1 -0
  16. package/dist/integration-engine/index.d.ts +1 -6
  17. package/dist/integration-engine/index.js +3 -20
  18. package/dist/integration-engine/index.js.map +1 -1
  19. package/dist/integration-engine/repositories/DetectionsRepository.d.ts +4 -0
  20. package/dist/integration-engine/repositories/DetectionsRepository.js +18 -0
  21. package/dist/integration-engine/repositories/DetectionsRepository.js.map +1 -0
  22. package/dist/integration-engine/repositories/DirectionsRepository.d.ts +4 -0
  23. package/dist/integration-engine/repositories/DirectionsRepository.js +18 -0
  24. package/dist/integration-engine/repositories/DirectionsRepository.js.map +1 -0
  25. package/dist/integration-engine/repositories/LocationsRepository.d.ts +4 -0
  26. package/dist/integration-engine/repositories/LocationsRepository.js +18 -0
  27. package/dist/integration-engine/repositories/LocationsRepository.js.map +1 -0
  28. package/dist/integration-engine/repositories/TemperaturesRepository.d.ts +4 -0
  29. package/dist/integration-engine/repositories/TemperaturesRepository.js +18 -0
  30. package/dist/integration-engine/repositories/TemperaturesRepository.js.map +1 -0
  31. package/dist/integration-engine/repositories/index.d.ts +4 -0
  32. package/dist/integration-engine/repositories/index.js +22 -0
  33. package/dist/integration-engine/repositories/index.js.map +1 -0
  34. package/dist/integration-engine/schema/UpdateCameaSchema.d.ts +20 -0
  35. package/dist/integration-engine/schema/UpdateCameaSchema.js +37 -0
  36. package/dist/integration-engine/schema/UpdateCameaSchema.js.map +1 -0
  37. package/dist/integration-engine/schema/UpdateEcoCounterSchema.d.ts +12 -0
  38. package/dist/integration-engine/schema/UpdateEcoCounterSchema.js +33 -0
  39. package/dist/integration-engine/schema/UpdateEcoCounterSchema.js.map +1 -0
  40. package/dist/integration-engine/{CameaMeasurementsTransformation.js → transformations/CameaMeasurementsTransformation.js} +1 -1
  41. package/dist/integration-engine/transformations/CameaMeasurementsTransformation.js.map +1 -0
  42. package/dist/integration-engine/{CameaTransformation.js → transformations/CameaTransformation.js} +1 -1
  43. package/dist/integration-engine/transformations/CameaTransformation.js.map +1 -0
  44. package/dist/integration-engine/{EcoCounterMeasurementsTransformation.js → transformations/EcoCounterMeasurementsTransformation.js} +1 -1
  45. package/dist/integration-engine/transformations/EcoCounterMeasurementsTransformation.js.map +1 -0
  46. package/dist/integration-engine/{EcoCounterTransformation.js → transformations/EcoCounterTransformation.js} +1 -1
  47. package/dist/integration-engine/transformations/EcoCounterTransformation.js.map +1 -0
  48. package/dist/integration-engine/workers/BicycleCountersWorker.d.ts +10 -0
  49. package/dist/integration-engine/workers/BicycleCountersWorker.js +29 -0
  50. package/dist/integration-engine/workers/BicycleCountersWorker.js.map +1 -0
  51. package/dist/integration-engine/workers/index.d.ts +2 -0
  52. package/dist/integration-engine/workers/index.js +6 -0
  53. package/dist/integration-engine/workers/index.js.map +1 -0
  54. package/dist/integration-engine/workers/tasks/RefreshCameaDataLastXHoursInDBTask.d.ts +11 -0
  55. package/dist/integration-engine/workers/tasks/RefreshCameaDataLastXHoursInDBTask.js +45 -0
  56. package/dist/integration-engine/workers/tasks/RefreshCameaDataLastXHoursInDBTask.js.map +1 -0
  57. package/dist/integration-engine/workers/tasks/RefreshCameaDataPreviousDayInDBTask.d.ts +11 -0
  58. package/dist/integration-engine/workers/tasks/RefreshCameaDataPreviousDayInDBTask.js +45 -0
  59. package/dist/integration-engine/workers/tasks/RefreshCameaDataPreviousDayInDBTask.js.map +1 -0
  60. package/dist/integration-engine/workers/tasks/RefreshCameaDataSpecificDayInDBTask.d.ts +13 -0
  61. package/dist/integration-engine/workers/tasks/RefreshCameaDataSpecificDayInDBTask.js +52 -0
  62. package/dist/integration-engine/workers/tasks/RefreshCameaDataSpecificDayInDBTask.js.map +1 -0
  63. package/dist/integration-engine/workers/tasks/RefreshEcoCounterDataInDBTask.d.ts +11 -0
  64. package/dist/integration-engine/workers/tasks/RefreshEcoCounterDataInDBTask.js +46 -0
  65. package/dist/integration-engine/workers/tasks/RefreshEcoCounterDataInDBTask.js.map +1 -0
  66. package/dist/integration-engine/workers/tasks/UpdateCameaTask.d.ts +13 -0
  67. package/dist/integration-engine/workers/tasks/UpdateCameaTask.js +91 -0
  68. package/dist/integration-engine/workers/tasks/UpdateCameaTask.js.map +1 -0
  69. package/dist/integration-engine/workers/tasks/UpdateEcoCounterTask.d.ts +12 -0
  70. package/dist/integration-engine/workers/tasks/UpdateEcoCounterTask.js +76 -0
  71. package/dist/integration-engine/workers/tasks/UpdateEcoCounterTask.js.map +1 -0
  72. package/dist/integration-engine/workers/tasks/index.d.ts +6 -0
  73. package/dist/integration-engine/workers/tasks/index.js +24 -0
  74. package/dist/integration-engine/workers/tasks/index.js.map +1 -0
  75. package/package.json +1 -1
  76. package/dist/integration-engine/BicycleCountersWorker.d.ts +0 -28
  77. package/dist/integration-engine/BicycleCountersWorker.js +0 -236
  78. package/dist/integration-engine/BicycleCountersWorker.js.map +0 -1
  79. package/dist/integration-engine/CameaMeasurementsTransformation.js.map +0 -1
  80. package/dist/integration-engine/CameaTransformation.js.map +0 -1
  81. package/dist/integration-engine/EcoCounterMeasurementsTransformation.js.map +0 -1
  82. package/dist/integration-engine/EcoCounterTransformation.js.map +0 -1
  83. package/dist/integration-engine/queueDefinitions.d.ts +0 -3
  84. package/dist/integration-engine/queueDefinitions.js +0 -76
  85. package/dist/integration-engine/queueDefinitions.js.map +0 -1
  86. /package/dist/integration-engine/{CameaMeasurementsTransformation.d.ts → transformations/CameaMeasurementsTransformation.d.ts} +0 -0
  87. /package/dist/integration-engine/{CameaTransformation.d.ts → transformations/CameaTransformation.d.ts} +0 -0
  88. /package/dist/integration-engine/{EcoCounterMeasurementsTransformation.d.ts → transformations/EcoCounterMeasurementsTransformation.d.ts} +0 -0
  89. /package/dist/integration-engine/{EcoCounterTransformation.d.ts → transformations/EcoCounterTransformation.d.ts} +0 -0
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RefreshCameaDataLastXHoursInDBTask = void 0;
13
+ const CameaDataSource_1 = require("../../datasources/CameaDataSource");
14
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
15
+ const repositories_1 = require("../../repositories");
16
+ const CameaTransformation_1 = require("../../transformations/CameaTransformation");
17
+ const BicycleCountersWorker_1 = require("../BicycleCountersWorker");
18
+ class RefreshCameaDataLastXHoursInDBTask extends integration_engine_1.AbstractEmptyTask {
19
+ constructor(queuePrefix) {
20
+ super(queuePrefix);
21
+ this.queueName = "refreshCameaDataLastXHoursInDB";
22
+ this.queueTtl = 14 * 60 * 1000; // 14 minutes
23
+ this.dataSourceCamea = CameaDataSource_1.CameaDataSource.getDataSource();
24
+ this.cameaTransformation = new CameaTransformation_1.CameaTransformation();
25
+ this.locationsRepo = new repositories_1.LocationsRepository();
26
+ this.directionsRepo = new repositories_1.DirectionRepository();
27
+ }
28
+ execute() {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ const data = yield this.dataSourceCamea.getAll();
31
+ const transformedData = yield this.cameaTransformation.transform(data);
32
+ yield this.locationsRepo.save(transformedData.locations);
33
+ yield this.directionsRepo.save(transformedData.directions);
34
+ const promises = transformedData.locations.map((p) => {
35
+ return integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "updateCamea", {
36
+ id: p.vendor_id,
37
+ duration: BicycleCountersWorker_1.CameaRefreshDurations.last3Hours,
38
+ });
39
+ });
40
+ yield Promise.all(promises);
41
+ });
42
+ }
43
+ }
44
+ exports.RefreshCameaDataLastXHoursInDBTask = RefreshCameaDataLastXHoursInDBTask;
45
+ //# sourceMappingURL=RefreshCameaDataLastXHoursInDBTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefreshCameaDataLastXHoursInDBTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/RefreshCameaDataLastXHoursInDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uEAAoE;AACpE,8EAAoG;AACpG,qDAA4E;AAC5E,mFAA8E;AAC9E,oEAAiE;AAEjE,MAAa,kCAAmC,SAAQ,sCAAiB;IASrE,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QATP,cAAS,GAAG,gCAAgC,CAAC;QAC7C,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QASpD,IAAI,CAAC,eAAe,GAAG,iCAAe,CAAC,aAAa,EAAE,CAAC;QACvD,IAAI,CAAC,mBAAmB,GAAG,IAAI,yCAAmB,EAAE,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,kCAAmB,EAAE,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,IAAI,kCAAmB,EAAE,CAAC;IACpD,CAAC;IAEe,OAAO;;YACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACvE,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAE3D,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjD,OAAO,iCAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE;oBACvE,EAAE,EAAE,CAAC,CAAC,SAAS;oBACf,QAAQ,EAAE,6CAAqB,CAAC,UAAU;iBAC7C,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;KAAA;CACJ;AA/BD,gFA+BC"}
@@ -0,0 +1,11 @@
1
+ import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine";
2
+ export declare class RefreshCameaDataPreviousDayInDBTask extends AbstractEmptyTask {
3
+ readonly queueName = "refreshCameaDataPreviousDayInDB";
4
+ readonly queueTtl: number;
5
+ private dataSourceCamea;
6
+ private cameaTransformation;
7
+ private locationsRepo;
8
+ private directionsRepo;
9
+ constructor(queuePrefix: string);
10
+ protected execute(): Promise<void>;
11
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RefreshCameaDataPreviousDayInDBTask = void 0;
13
+ const CameaDataSource_1 = require("../../datasources/CameaDataSource");
14
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
15
+ const repositories_1 = require("../../repositories");
16
+ const CameaTransformation_1 = require("../../transformations/CameaTransformation");
17
+ const BicycleCountersWorker_1 = require("../BicycleCountersWorker");
18
+ class RefreshCameaDataPreviousDayInDBTask extends integration_engine_1.AbstractEmptyTask {
19
+ constructor(queuePrefix) {
20
+ super(queuePrefix);
21
+ this.queueName = "refreshCameaDataPreviousDayInDB";
22
+ this.queueTtl = 23 * 60 * 1000; // 23 minutes
23
+ this.dataSourceCamea = CameaDataSource_1.CameaDataSource.getDataSource();
24
+ this.cameaTransformation = new CameaTransformation_1.CameaTransformation();
25
+ this.locationsRepo = new repositories_1.LocationsRepository();
26
+ this.directionsRepo = new repositories_1.DirectionRepository();
27
+ }
28
+ execute() {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ const data = yield this.dataSourceCamea.getAll();
31
+ const transformedData = yield this.cameaTransformation.transform(data);
32
+ yield this.locationsRepo.save(transformedData.locations);
33
+ yield this.directionsRepo.save(transformedData.directions);
34
+ const promises = transformedData.locations.map((p) => {
35
+ return integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "updateCamea", {
36
+ id: p.vendor_id,
37
+ duration: BicycleCountersWorker_1.CameaRefreshDurations.previousDay,
38
+ });
39
+ });
40
+ yield Promise.all(promises);
41
+ });
42
+ }
43
+ }
44
+ exports.RefreshCameaDataPreviousDayInDBTask = RefreshCameaDataPreviousDayInDBTask;
45
+ //# sourceMappingURL=RefreshCameaDataPreviousDayInDBTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefreshCameaDataPreviousDayInDBTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/RefreshCameaDataPreviousDayInDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uEAAoE;AACpE,8EAAoG;AACpG,qDAA4E;AAC5E,mFAA8E;AAC9E,oEAAiE;AAEjE,MAAa,mCAAoC,SAAQ,sCAAiB;IAStE,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QATP,cAAS,GAAG,iCAAiC,CAAC;QAC9C,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QASpD,IAAI,CAAC,eAAe,GAAG,iCAAe,CAAC,aAAa,EAAE,CAAC;QACvD,IAAI,CAAC,mBAAmB,GAAG,IAAI,yCAAmB,EAAE,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,kCAAmB,EAAE,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,IAAI,kCAAmB,EAAE,CAAC;IACpD,CAAC;IAEe,OAAO;;YACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACvE,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAE3D,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjD,OAAO,iCAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE;oBACvE,EAAE,EAAE,CAAC,CAAC,SAAS;oBACf,QAAQ,EAAE,6CAAqB,CAAC,WAAW;iBAC9C,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;KAAA;CACJ;AA/BD,kFA+BC"}
@@ -0,0 +1,13 @@
1
+ import { DateValidationSchema, IDate } from "./../../schema/UpdateCameaSchema";
2
+ import { AbstractTask } from "@golemio/core/dist/integration-engine";
3
+ export declare class RefreshCameaDataSpecificDayInDBTask extends AbstractTask<IDate> {
4
+ protected schema: typeof DateValidationSchema;
5
+ readonly queueName = "refreshCameaDataSpecificDayInDB";
6
+ readonly queueTtl: number;
7
+ private dataSourceCamea;
8
+ private cameaTransformation;
9
+ private locationsRepo;
10
+ private directionsRepo;
11
+ constructor(queuePrefix: string);
12
+ protected execute(inputData: IDate): Promise<void>;
13
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RefreshCameaDataSpecificDayInDBTask = void 0;
13
+ const UpdateCameaSchema_1 = require("./../../schema/UpdateCameaSchema");
14
+ const CameaDataSource_1 = require("../../datasources/CameaDataSource");
15
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
16
+ const repositories_1 = require("../../repositories");
17
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
18
+ const CameaTransformation_1 = require("../../transformations/CameaTransformation");
19
+ const BicycleCountersWorker_1 = require("../BicycleCountersWorker");
20
+ class RefreshCameaDataSpecificDayInDBTask extends integration_engine_1.AbstractTask {
21
+ constructor(queuePrefix) {
22
+ super(queuePrefix);
23
+ this.schema = UpdateCameaSchema_1.DateValidationSchema;
24
+ this.queueName = "refreshCameaDataSpecificDayInDB";
25
+ this.queueTtl = 5 * 60 * 1000; // 5 minutes
26
+ this.dataSourceCamea = CameaDataSource_1.CameaDataSource.getDataSource();
27
+ this.cameaTransformation = new CameaTransformation_1.CameaTransformation();
28
+ this.locationsRepo = new repositories_1.LocationsRepository();
29
+ this.directionsRepo = new repositories_1.DirectionRepository();
30
+ }
31
+ execute(inputData) {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ if (!(inputData === null || inputData === void 0 ? void 0 : inputData.date)) {
34
+ throw new golemio_errors_1.GeneralError("Message must contain the date property.", this.constructor.name);
35
+ }
36
+ const data = yield this.dataSourceCamea.getAll();
37
+ const transformedData = yield this.cameaTransformation.transform(data);
38
+ yield this.locationsRepo.save(transformedData.locations);
39
+ yield this.directionsRepo.save(transformedData.directions);
40
+ const promises = transformedData.locations.map((p) => {
41
+ return integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "updateCamea", {
42
+ date: inputData.date,
43
+ duration: BicycleCountersWorker_1.CameaRefreshDurations.specificDay,
44
+ id: p.vendor_id,
45
+ });
46
+ });
47
+ yield Promise.all(promises);
48
+ });
49
+ }
50
+ }
51
+ exports.RefreshCameaDataSpecificDayInDBTask = RefreshCameaDataSpecificDayInDBTask;
52
+ //# sourceMappingURL=RefreshCameaDataSpecificDayInDBTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefreshCameaDataSpecificDayInDBTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/RefreshCameaDataSpecificDayInDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wEAA+E;AAC/E,uEAAoE;AACpE,8EAA+F;AAC/F,qDAA4E;AAC5E,6EAAwE;AACxE,mFAA8E;AAC9E,oEAAiE;AAEjE,MAAa,mCAAoC,SAAQ,iCAAmB;IAUxE,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QAVb,WAAM,GAAG,wCAAoB,CAAC;QACxB,cAAS,GAAG,iCAAiC,CAAC;QAC9C,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QASlD,IAAI,CAAC,eAAe,GAAG,iCAAe,CAAC,aAAa,EAAE,CAAC;QACvD,IAAI,CAAC,mBAAmB,GAAG,IAAI,yCAAmB,EAAE,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,kCAAmB,EAAE,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,IAAI,kCAAmB,EAAE,CAAC;IACpD,CAAC;IAEe,OAAO,CAAC,SAAgB;;YACpC,IAAI,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAA,EAAE;gBAClB,MAAM,IAAI,6BAAY,CAAC,yCAAyC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAC5F;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACvE,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAE3D,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjD,OAAO,iCAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE;oBACvE,IAAI,EAAE,SAAS,CAAC,IAAc;oBAC9B,QAAQ,EAAE,6CAAqB,CAAC,WAAW;oBAC3C,EAAE,EAAE,CAAC,CAAC,SAAS;iBAClB,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;KAAA;CACJ;AArCD,kFAqCC"}
@@ -0,0 +1,11 @@
1
+ import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine";
2
+ export declare class RefreshEcoCounterDataInDBTask extends AbstractEmptyTask {
3
+ readonly queueName = "refreshEcoCounterDataInDB";
4
+ readonly queueTtl: number;
5
+ private dataSourceCamea;
6
+ private ecoCounterTransformation;
7
+ private locationsRepo;
8
+ private directionsRepo;
9
+ constructor(queuePrefix: string);
10
+ protected execute(): Promise<void>;
11
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RefreshEcoCounterDataInDBTask = void 0;
13
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
14
+ const repositories_1 = require("../../repositories");
15
+ const EcoCounterTransformation_1 = require("../../transformations/EcoCounterTransformation");
16
+ const datasources_1 = require("../../datasources");
17
+ class RefreshEcoCounterDataInDBTask extends integration_engine_1.AbstractEmptyTask {
18
+ constructor(queuePrefix) {
19
+ super(queuePrefix);
20
+ this.queueName = "refreshEcoCounterDataInDB";
21
+ this.queueTtl = 14 * 60 * 1000; // 14 minutes
22
+ this.dataSourceCamea = datasources_1.EcoCountersDataSource.getDataSource();
23
+ this.ecoCounterTransformation = new EcoCounterTransformation_1.EcoCounterTransformation();
24
+ this.locationsRepo = new repositories_1.LocationsRepository();
25
+ this.directionsRepo = new repositories_1.DirectionRepository();
26
+ }
27
+ execute() {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ const data = yield this.dataSourceCamea.getAll();
30
+ const transformedData = yield this.ecoCounterTransformation.transform(data);
31
+ yield this.locationsRepo.save(transformedData.locations);
32
+ yield this.directionsRepo.save(transformedData.directions);
33
+ const promises = transformedData.directions.map((p) => {
34
+ return integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "updateEcoCounter", {
35
+ category: "bicycle",
36
+ directions_id: p.id,
37
+ id: p.vendor_id,
38
+ locations_id: p.locations_id,
39
+ });
40
+ });
41
+ yield Promise.all(promises);
42
+ });
43
+ }
44
+ }
45
+ exports.RefreshEcoCounterDataInDBTask = RefreshEcoCounterDataInDBTask;
46
+ //# sourceMappingURL=RefreshEcoCounterDataInDBTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefreshEcoCounterDataInDBTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/RefreshEcoCounterDataInDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAAoG;AACpG,qDAA4E;AAC5E,6FAAwF;AACxF,mDAAwD;AAExD,MAAa,6BAA8B,SAAQ,sCAAiB;IAShE,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QATP,cAAS,GAAG,2BAA2B,CAAC;QACxC,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QASpD,IAAI,CAAC,eAAe,GAAG,mCAAqB,CAAC,aAAa,EAAE,CAAC;QAC7D,IAAI,CAAC,wBAAwB,GAAG,IAAI,mDAAwB,EAAE,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,IAAI,kCAAmB,EAAE,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,IAAI,kCAAmB,EAAE,CAAC;IACpD,CAAC;IAEe,OAAO;;YACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YAEjD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAE5E,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAE3D,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAClD,OAAO,iCAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,EAAE;oBAC5E,QAAQ,EAAE,SAAS;oBACnB,aAAa,EAAE,CAAC,CAAC,EAAE;oBACnB,EAAE,EAAE,CAAC,CAAC,SAAS;oBACf,YAAY,EAAE,CAAC,CAAC,YAAY;iBAC/B,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;KAAA;CACJ;AAnCD,sEAmCC"}
@@ -0,0 +1,13 @@
1
+ import { IUpdateCameaDateInput, IUpdateCameaInput, UpdateCameaValidationSchema } from "./../../schema/UpdateCameaSchema";
2
+ import { AbstractTask } from "@golemio/core/dist/integration-engine";
3
+ export declare class UpdateCameaTask extends AbstractTask<IUpdateCameaInput> {
4
+ protected schema: typeof UpdateCameaValidationSchema;
5
+ readonly queueName = "updateCamea";
6
+ readonly queueTtl: number;
7
+ private dataSourceCameaMeasurements;
8
+ private cameaMeasurementsTransformation;
9
+ private detectionsRepo;
10
+ private temperaturesRepo;
11
+ constructor(queuePrefix: string);
12
+ protected execute(inputData: IUpdateCameaInput & IUpdateCameaDateInput): Promise<void>;
13
+ }
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.UpdateCameaTask = void 0;
16
+ const UpdateCameaSchema_1 = require("./../../schema/UpdateCameaSchema");
17
+ const DetectionsRepository_1 = require("../../repositories/DetectionsRepository");
18
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
19
+ const repositories_1 = require("../../repositories");
20
+ const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
21
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
22
+ const CameaCountersMeasurementsDataSource_1 = require("../../datasources/CameaCountersMeasurementsDataSource");
23
+ const CameaMeasurementsTransformation_1 = require("../../transformations/CameaMeasurementsTransformation");
24
+ const BicycleCountersWorker_1 = require("../BicycleCountersWorker");
25
+ class UpdateCameaTask extends integration_engine_1.AbstractTask {
26
+ constructor(queuePrefix) {
27
+ super(queuePrefix);
28
+ this.schema = UpdateCameaSchema_1.UpdateCameaValidationSchema;
29
+ this.queueName = "updateCamea";
30
+ this.queueTtl = 4 * 60 * 1000; // 4 minutes
31
+ this.detectionsRepo = new DetectionsRepository_1.DetectionsRepository();
32
+ this.cameaMeasurementsTransformation = new CameaMeasurementsTransformation_1.CameaMeasurementsTransformation();
33
+ this.dataSourceCameaMeasurements = CameaCountersMeasurementsDataSource_1.CameaCountersMeasurementsDataSource.getDataSource();
34
+ this.temperaturesRepo = new repositories_1.TemperaturesRepository();
35
+ }
36
+ execute(inputData) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ const id = inputData.id;
39
+ const duration = inputData.duration;
40
+ const now = moment_timezone_1.default.utc();
41
+ let from;
42
+ let to;
43
+ switch (duration) {
44
+ case BicycleCountersWorker_1.CameaRefreshDurations.last3Hours:
45
+ const step = 5;
46
+ const remainder = step - (now.minute() % step);
47
+ // rounded to nearest next 5 minutes
48
+ const nowRounded = now.clone().add(remainder, "minutes").seconds(0).milliseconds(0);
49
+ const nowMinus12h = nowRounded.clone().subtract(3, "hours");
50
+ to = nowRounded.format("YYYY-MM-DD HH:mm:ss");
51
+ from = nowMinus12h.format("YYYY-MM-DD HH:mm:ss");
52
+ break;
53
+ case BicycleCountersWorker_1.CameaRefreshDurations.previousDay:
54
+ const todayStart = now.clone().hours(0).minutes(0).seconds(0).milliseconds(0);
55
+ const yesterdayStart = todayStart.clone().subtract(1, "day");
56
+ to = todayStart.format("YYYY-MM-DD HH:mm:ss");
57
+ from = yesterdayStart.format("YYYY-MM-DD HH:mm:ss");
58
+ break;
59
+ case BicycleCountersWorker_1.CameaRefreshDurations.specificDay:
60
+ const date = inputData.date;
61
+ const dayStart = (0, moment_timezone_1.default)(date).hours(0).minutes(0).seconds(0).milliseconds(0);
62
+ const nextDayStart = dayStart.clone().add(1, "day");
63
+ to = nextDayStart.format("YYYY-MM-DD HH:mm:ss");
64
+ from = dayStart.format("YYYY-MM-DD HH:mm:ss");
65
+ break;
66
+ default:
67
+ throw new golemio_errors_1.RecoverableError(`Undefined Camea refresh duration value.`, this.constructor.name);
68
+ }
69
+ let url = integration_engine_1.config.datasources.BicycleCountersCameaMeasurements;
70
+ url = url.replace(":id", id);
71
+ url = url.replace(":from", from);
72
+ url = url.replace(":to", to);
73
+ this.dataSourceCameaMeasurements.setProtocolStrategy(new integration_engine_1.HTTPProtocolStrategy({
74
+ headers: {},
75
+ json: true,
76
+ method: "GET",
77
+ url,
78
+ }));
79
+ const data = yield this.dataSourceCameaMeasurements.getAll();
80
+ const transformedData = yield this.cameaMeasurementsTransformation.transform(data);
81
+ yield this.detectionsRepo.saveBySqlFunction(transformedData.detections, [
82
+ "locations_id",
83
+ "directions_id",
84
+ "measured_from",
85
+ ]);
86
+ yield this.temperaturesRepo.saveBySqlFunction(transformedData.temperatures, ["locations_id", "measured_from"]);
87
+ });
88
+ }
89
+ }
90
+ exports.UpdateCameaTask = UpdateCameaTask;
91
+ //# sourceMappingURL=UpdateCameaTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateCameaTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/UpdateCameaTask.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { AbstractTask } from "@golemio/core/dist/integration-engine";
2
+ import { IUpdateEcoCounterInput, UpdateEcoCounterValidationSchema } from "../../schema/UpdateEcoCounterSchema";
3
+ export declare class UpdateEcoCounterTask extends AbstractTask<IUpdateEcoCounterInput> {
4
+ protected schema: typeof UpdateEcoCounterValidationSchema;
5
+ readonly queueName = "updateEcoCounter";
6
+ readonly queueTtl: number;
7
+ private dataSourceEcoCounterMeasurements;
8
+ private ecoCounterMeasurementsTransformation;
9
+ private detectionsRepo;
10
+ constructor(queuePrefix: string);
11
+ protected execute(inputData: IUpdateEcoCounterInput): Promise<void>;
12
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.UpdateEcoCounterTask = void 0;
16
+ const DetectionsRepository_1 = require("../../repositories/DetectionsRepository");
17
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
18
+ const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
19
+ const EcoCounterMeasurementsDataSource_1 = require("../../datasources/EcoCounterMeasurementsDataSource");
20
+ const EcoCounterMeasurementsTransformation_1 = require("../../transformations/EcoCounterMeasurementsTransformation");
21
+ const UpdateEcoCounterSchema_1 = require("../../schema/UpdateEcoCounterSchema");
22
+ class UpdateEcoCounterTask extends integration_engine_1.AbstractTask {
23
+ constructor(queuePrefix) {
24
+ super(queuePrefix);
25
+ this.schema = UpdateEcoCounterSchema_1.UpdateEcoCounterValidationSchema;
26
+ this.queueName = "updateEcoCounter";
27
+ this.queueTtl = 14 * 60 * 1000; // 14 minutes
28
+ this.dataSourceEcoCounterMeasurements = EcoCounterMeasurementsDataSource_1.EcoCounterMeasurementsDataSource.getDataSource();
29
+ this.detectionsRepo = new DetectionsRepository_1.DetectionsRepository();
30
+ this.ecoCounterMeasurementsTransformation = new EcoCounterMeasurementsTransformation_1.EcoCounterMeasurementsTransformation();
31
+ }
32
+ execute(inputData) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ const locationsId = inputData.locations_id;
35
+ const directionsId = inputData.directions_id;
36
+ const category = inputData.category;
37
+ const id = inputData.id;
38
+ // EcoCounter API is actually working with local Europe/Prague time, not ISO!!!
39
+ // so we have to send local time to request.
40
+ // Furthermore, the returned dates are START of the measurement interval, so if we want measurements
41
+ // from interval between 06:00 and 07:00 UTC (which is local 07:00 - 08:00), we have to send parameters
42
+ // from=07:00 and to=07:45, because it returns all the measurements where from and to parameters are INCLUDED.
43
+ const now = moment_timezone_1.default.utc().tz("Europe/Prague");
44
+ const step = 15;
45
+ const remainder = now.minute() % step;
46
+ // rounded to nearest next 15 minutes
47
+ const nowRounded = now.clone().subtract(remainder, "minutes").seconds(0).milliseconds(0);
48
+ const strTo = nowRounded.clone().subtract(step, "minutes").format("YYYY-MM-DDTHH:mm:ss");
49
+ const strFrom = nowRounded.clone().subtract(12, "hours").format("YYYY-MM-DDTHH:mm:ss");
50
+ let url = integration_engine_1.config.datasources.BicycleCountersEcoCounterMeasurements;
51
+ url = url.replace(":id", id);
52
+ url = url.replace(":from", strFrom);
53
+ url = url.replace(":to", strTo);
54
+ url = url.replace(":step", `${step}m`);
55
+ url = url.replace(":complete", "true");
56
+ this.dataSourceEcoCounterMeasurements.setProtocolStrategy(new integration_engine_1.HTTPProtocolStrategy({
57
+ headers: {
58
+ Authorization: `Bearer ${integration_engine_1.config.datasources.CountersEcoCounterTokens.PRAHA}`,
59
+ },
60
+ json: true,
61
+ method: "GET",
62
+ url,
63
+ }));
64
+ const data = yield this.dataSourceEcoCounterMeasurements.getAll();
65
+ if (category === "bicycle") {
66
+ yield this.detectionsRepo.saveBySqlFunction((yield this.ecoCounterMeasurementsTransformation.transform(data)).map((x) => {
67
+ x.directions_id = directionsId;
68
+ x.locations_id = locationsId;
69
+ return x;
70
+ }), ["locations_id", "directions_id", "measured_from"]);
71
+ }
72
+ });
73
+ }
74
+ }
75
+ exports.UpdateEcoCounterTask = UpdateEcoCounterTask;
76
+ //# sourceMappingURL=UpdateEcoCounterTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateEcoCounterTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/UpdateEcoCounterTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kFAA+E;AAC/E,8EAA+G;AAC/G,gGAA+D;AAC/D,yGAAoG;AACpG,qHAAgH;AAChH,gFAA6G;AAE7G,MAAa,oBAAqB,SAAQ,iCAAoC;IAW1E,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QAXb,WAAM,GAAG,yDAAgC,CAAC;QACpC,cAAS,GAAG,kBAAkB,CAAC;QAC/B,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QAWpD,IAAI,CAAC,gCAAgC,GAAG,mEAAgC,CAAC,aAAa,EAAE,CAAC;QACzF,IAAI,CAAC,cAAc,GAAG,IAAI,2CAAoB,EAAE,CAAC;QACjD,IAAI,CAAC,oCAAoC,GAAG,IAAI,2EAAoC,EAAE,CAAC;IAC3F,CAAC;IAEe,OAAO,CAAC,SAAiC;;YACrD,MAAM,WAAW,GAAG,SAAS,CAAC,YAAY,CAAC;YAC3C,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC;YAC7C,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;YACpC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;YAExB,+EAA+E;YAC/E,4CAA4C;YAC5C,oGAAoG;YACpG,uGAAuG;YACvG,8GAA8G;YAC9G,MAAM,GAAG,GAAG,yBAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;YACtC,qCAAqC;YACrC,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACzF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACzF,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAEvF,IAAI,GAAG,GAAG,2BAAM,CAAC,WAAW,CAAC,qCAAqC,CAAC;YACnE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACpC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAChC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;YACvC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAEvC,IAAI,CAAC,gCAAgC,CAAC,mBAAmB,CACrD,IAAI,yCAAoB,CAAC;gBACrB,OAAO,EAAE;oBACL,aAAa,EAAE,UAAU,2BAAM,CAAC,WAAW,CAAC,wBAAwB,CAAC,KAAK,EAAE;iBAC/E;gBACD,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,KAAK;gBACb,GAAG;aACN,CAAC,CACL,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,MAAM,EAAE,CAAC;YAElE,IAAI,QAAQ,KAAK,SAAS,EAAE;gBACxB,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CACvC,CACI,MAAM,IAAI,CAAC,oCAAoC,CAAC,SAAS,CAAC,IAAI,CAAC,CAClE,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;oBACb,CAAC,CAAC,aAAa,GAAG,YAAY,CAAC;oBAC/B,CAAC,CAAC,YAAY,GAAG,WAAW,CAAC;oBAC7B,OAAO,CAAC,CAAC;gBACb,CAAC,CAAC,EACF,CAAC,cAAc,EAAE,eAAe,EAAE,eAAe,CAAC,CACrD,CAAC;aACL;QACL,CAAC;KAAA;CACJ;AAvED,oDAuEC"}
@@ -0,0 +1,6 @@
1
+ export * from "./RefreshCameaDataLastXHoursInDBTask";
2
+ export * from "./RefreshCameaDataPreviousDayInDBTask";
3
+ export * from "./RefreshCameaDataSpecificDayInDBTask";
4
+ export * from "./RefreshEcoCounterDataInDBTask";
5
+ export * from "./UpdateCameaTask";
6
+ export * from "./UpdateCameaTask";
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /* ie/workers/tasks/index.ts */
18
+ __exportStar(require("./RefreshCameaDataLastXHoursInDBTask"), exports);
19
+ __exportStar(require("./RefreshCameaDataPreviousDayInDBTask"), exports);
20
+ __exportStar(require("./RefreshCameaDataSpecificDayInDBTask"), exports);
21
+ __exportStar(require("./RefreshEcoCounterDataInDBTask"), exports);
22
+ __exportStar(require("./UpdateCameaTask"), exports);
23
+ __exportStar(require("./UpdateCameaTask"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+BAA+B;AAC/B,uEAAqD;AACrD,wEAAsD;AACtD,wEAAsD;AACtD,kEAAgD;AAChD,oDAAkC;AAClC,oDAAkC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/bicycle-counters",
3
- "version": "1.2.4",
3
+ "version": "1.2.5-dev.905379826",
4
4
  "description": "Golemio Bicycle Counters Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,28 +0,0 @@
1
- import { BaseWorker } from "@golemio/core/dist/integration-engine/workers";
2
- export declare enum CameaRefreshDurations {
3
- last3Hours = 0,
4
- previousDay = 1,
5
- specificDay = 2
6
- }
7
- export declare class BicycleCountersWorker extends BaseWorker {
8
- private dataSourceCamea;
9
- private dataSourceCameaMeasurements;
10
- private dataSourceEcoCounter;
11
- private dataSourceEcoCounterMeasurements;
12
- private cameaTransformation;
13
- private ecoCounterTransformation;
14
- private cameaMeasurementsTransformation;
15
- private ecoCounterMeasurementsTransformation;
16
- private locationsModel;
17
- private directionsModel;
18
- private detectionsModel;
19
- private temperaturesModel;
20
- private readonly queuePrefix;
21
- constructor();
22
- refreshCameaDataLastXHoursInDB: (msg: any) => Promise<void>;
23
- refreshCameaDataPreviousDayInDB: (msg: any) => Promise<void>;
24
- refreshCameaDataSpecificDayInDB: (msg: any) => Promise<void>;
25
- updateCamea: (msg: any) => Promise<void>;
26
- refreshEcoCounterDataInDB: (msg: any) => Promise<void>;
27
- updateEcoCounter: (msg: any) => Promise<void>;
28
- }