@golemio/waze-ccp 1.2.8 → 1.2.9-dev.2484306206

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 (63) hide show
  1. package/dist/integration-engine/index.d.ts +2 -5
  2. package/dist/integration-engine/index.js +4 -5
  3. package/dist/integration-engine/index.js.map +1 -1
  4. package/dist/integration-engine/{WazeCCPAlertsTransformation.d.ts → transformations/WazeCCPAlertsTransformation.d.ts} +2 -2
  5. package/dist/integration-engine/{WazeCCPAlertsTransformation.js → transformations/WazeCCPAlertsTransformation.js} +3 -3
  6. package/dist/integration-engine/transformations/WazeCCPAlertsTransformation.js.map +1 -0
  7. package/dist/integration-engine/transformations/WazeCCPIrregularitiesTransformation.d.ts +12 -0
  8. package/dist/integration-engine/{WazeCCPIrregularitiesTransformation.js → transformations/WazeCCPIrregularitiesTransformation.js} +10 -38
  9. package/dist/integration-engine/transformations/WazeCCPIrregularitiesTransformation.js.map +1 -0
  10. package/dist/integration-engine/transformations/WazeCCPJamsTransformation.d.ts +12 -0
  11. package/dist/integration-engine/transformations/WazeCCPJamsTransformation.js +41 -0
  12. package/dist/integration-engine/transformations/WazeCCPJamsTransformation.js.map +1 -0
  13. package/dist/integration-engine/transformations/index.d.ts +3 -0
  14. package/dist/integration-engine/transformations/index.js +20 -0
  15. package/dist/integration-engine/transformations/index.js.map +1 -0
  16. package/dist/integration-engine/workers/WazeCCPWorker.d.ts +5 -0
  17. package/dist/integration-engine/workers/WazeCCPWorker.js +21 -0
  18. package/dist/integration-engine/workers/WazeCCPWorker.js.map +1 -0
  19. package/dist/integration-engine/workers/index.d.ts +2 -0
  20. package/dist/integration-engine/workers/index.js +6 -0
  21. package/dist/integration-engine/workers/index.js.map +1 -0
  22. package/dist/integration-engine/workers/tasks/RefreshAlertsInDBTask.d.ts +9 -0
  23. package/dist/integration-engine/workers/tasks/RefreshAlertsInDBTask.js +37 -0
  24. package/dist/integration-engine/workers/tasks/RefreshAlertsInDBTask.js.map +1 -0
  25. package/dist/integration-engine/workers/tasks/RefreshAllDataInDBTask.d.ts +6 -0
  26. package/dist/integration-engine/workers/tasks/RefreshAllDataInDBTask.js +22 -0
  27. package/dist/integration-engine/workers/tasks/RefreshAllDataInDBTask.js.map +1 -0
  28. package/dist/integration-engine/workers/tasks/RefreshIrregularitiesInDBTask.d.ts +10 -0
  29. package/dist/integration-engine/workers/tasks/RefreshIrregularitiesInDBTask.js +46 -0
  30. package/dist/integration-engine/workers/tasks/RefreshIrregularitiesInDBTask.js.map +1 -0
  31. package/dist/integration-engine/workers/tasks/RefreshJamsInDBTask.d.ts +10 -0
  32. package/dist/integration-engine/workers/tasks/RefreshJamsInDBTask.js +46 -0
  33. package/dist/integration-engine/workers/tasks/RefreshJamsInDBTask.js.map +1 -0
  34. package/dist/integration-engine/workers/tasks/index.d.ts +4 -0
  35. package/dist/integration-engine/workers/tasks/index.js +21 -0
  36. package/dist/integration-engine/workers/tasks/index.js.map +1 -0
  37. package/dist/schema-definitions/datasources/InputIrregularitiesJsonSchema.d.ts +3 -116
  38. package/dist/schema-definitions/datasources/InputIrregularitiesJsonSchema.js +2 -0
  39. package/dist/schema-definitions/datasources/InputIrregularitiesJsonSchema.js.map +1 -1
  40. package/dist/schema-definitions/datasources/InputJamsJsonSchema.d.ts +3 -92
  41. package/dist/schema-definitions/datasources/InputJamsJsonSchema.js +7 -0
  42. package/dist/schema-definitions/datasources/InputJamsJsonSchema.js.map +1 -1
  43. package/dist/schema-definitions/datasources/interfaces/IInputIrregularities.d.ts +39 -0
  44. package/dist/schema-definitions/datasources/interfaces/IInputIrregularities.js +3 -0
  45. package/dist/schema-definitions/datasources/interfaces/IInputIrregularities.js.map +1 -0
  46. package/dist/schema-definitions/datasources/interfaces/IInputJams.d.ts +34 -0
  47. package/dist/schema-definitions/datasources/interfaces/IInputJams.js +3 -0
  48. package/dist/schema-definitions/datasources/interfaces/IInputJams.js.map +1 -0
  49. package/docs/asyncapi.yaml +1 -1
  50. package/docs/implementation_documentation.md +45 -1
  51. package/package.json +1 -1
  52. package/dist/integration-engine/WazeCCPAlertsTransformation.js.map +0 -1
  53. package/dist/integration-engine/WazeCCPIrregularitiesTransformation.d.ts +0 -10
  54. package/dist/integration-engine/WazeCCPIrregularitiesTransformation.js.map +0 -1
  55. package/dist/integration-engine/WazeCCPJamsTransformation.d.ts +0 -10
  56. package/dist/integration-engine/WazeCCPJamsTransformation.js +0 -69
  57. package/dist/integration-engine/WazeCCPJamsTransformation.js.map +0 -1
  58. package/dist/integration-engine/WazeCCPWorker.d.ts +0 -17
  59. package/dist/integration-engine/WazeCCPWorker.js +0 -84
  60. package/dist/integration-engine/WazeCCPWorker.js.map +0 -1
  61. package/dist/integration-engine/queueDefinitions.d.ts +0 -3
  62. package/dist/integration-engine/queueDefinitions.js +0 -56
  63. package/dist/integration-engine/queueDefinitions.js.map +0 -1
@@ -1,6 +1,3 @@
1
- export * from "./WazeCCPAlertsTransformation";
2
- export * from "./WazeCCPIrregularitiesTransformation";
3
- export * from "./WazeCCPJamsTransformation";
4
1
  export * from "./WazeCCPUtils";
5
- export * from "./WazeCCPWorker";
6
- export * from "./queueDefinitions";
2
+ export * from "./transformations";
3
+ export { workers } from "./workers";
@@ -14,11 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.workers = void 0;
17
18
  /* ie/index.ts */
18
- __exportStar(require("./WazeCCPAlertsTransformation"), exports);
19
- __exportStar(require("./WazeCCPIrregularitiesTransformation"), exports);
20
- __exportStar(require("./WazeCCPJamsTransformation"), exports);
21
19
  __exportStar(require("./WazeCCPUtils"), exports);
22
- __exportStar(require("./WazeCCPWorker"), exports);
23
- __exportStar(require("./queueDefinitions"), exports);
20
+ __exportStar(require("./transformations"), exports);
21
+ var workers_1 = require("./workers");
22
+ Object.defineProperty(exports, "workers", { enumerable: true, get: function () { return workers_1.workers; } });
24
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration-engine/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iBAAiB;AACjB,gEAA8C;AAC9C,wEAAsD;AACtD,8DAA4C;AAC5C,iDAA+B;AAC/B,kDAAgC;AAChC,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration-engine/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iBAAiB;AACjB,iDAA+B;AAC/B,oDAAkC;AAClC,qCAAoC;AAA3B,kGAAA,OAAO,OAAA"}
@@ -1,6 +1,6 @@
1
1
  import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
2
- import { IWazeAlerts } from "./interfaces/WazeAlertsInterface";
3
- import { IInputAlertsInfo } from "../schema-definitions/datasources/interfaces/IInputAlerts";
2
+ import { IWazeAlerts } from "../interfaces/WazeAlertsInterface";
3
+ import { IInputAlertsInfo } from "../../schema-definitions/datasources/interfaces/IInputAlerts";
4
4
  export declare class WazeCCPAlertsTransformation extends AbstractTransformation<IInputAlertsInfo, IWazeAlerts> {
5
5
  name: string;
6
6
  private readonly downloadedAt;
@@ -5,12 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.WazeCCPAlertsTransformation = void 0;
7
7
  const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
8
- const index_1 = require("../schema-definitions/index");
9
- const AlertsIdHelper_1 = __importDefault(require("./helpers/AlertsIdHelper"));
8
+ const _sch_1 = require("../../schema-definitions");
9
+ const AlertsIdHelper_1 = __importDefault(require("../helpers/AlertsIdHelper"));
10
10
  class WazeCCPAlertsTransformation extends AbstractTransformation_1.AbstractTransformation {
11
11
  constructor(timestamp) {
12
12
  super();
13
- this.name = index_1.WazeCCP.alerts.name + "Transformation";
13
+ this.name = _sch_1.WazeCCP.alerts.name + "Transformation";
14
14
  this.transformInternal = (alert) => {
15
15
  return {
16
16
  city: alert.city ?? null,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WazeCCPAlertsTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/WazeCCPAlertsTransformation.ts"],"names":[],"mappings":";;;;;;AAAA,6GAA0G;AAC1G,mDAA+B;AAG/B,+EAAwD;AAExD,MAAa,2BAA4B,SAAQ,+CAAqD;IAIlG,YAAY,SAAe;QACvB,KAAK,EAAE,CAAC;QAJL,SAAI,GAAG,cAAO,CAAC,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAQ3C,sBAAiB,GAAG,CAAC,KAAuB,EAAe,EAAE;YACnE,OAAO;gBACH,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;gBACxB,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;gBACpC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;gBAC9B,aAAa,EAAE,IAAI,CAAC,YAAY;gBAChC,EAAE,EAAE,wBAAc,CAAC,YAAY,CAAC,KAAK,CAAC;gBACtC,QAAQ,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;gBAC/B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;gBAC5B,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE;gBACvC,YAAY,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;gBACxC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;gBACtC,2BAA2B,EAAE,KAAK,CAAC,wBAAwB,KAAK,MAAM;gBACtE,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,IAAI,IAAI;gBACnD,aAAa,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI;gBACzC,SAAS,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;gBACjC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;gBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;gBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;gBAClC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;gBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;aACnB,CAAC;QACN,CAAC,CAAC;QA1BE,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAClC,CAAC;CA0BJ;AAjCD,kEAiCC"}
@@ -0,0 +1,12 @@
1
+ import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
2
+ import { IIrregularityDto } from "../../schema-definitions/interfaces/IIrregularityDto";
3
+ import { IInputIrregularityInfo } from "../../schema-definitions/datasources/interfaces/IInputIrregularities";
4
+ type EnrichedInputIrregularityInfoType = {
5
+ downloadedAt: Date;
6
+ rootStart: number;
7
+ } & IInputIrregularityInfo;
8
+ export declare class WazeCCPIrregularitiesTransformation extends AbstractTransformation<EnrichedInputIrregularityInfoType, IIrregularityDto> {
9
+ name: any;
10
+ protected transformInternal: (irregularity: EnrichedInputIrregularityInfoType) => IIrregularityDto;
11
+ }
12
+ export {};
@@ -1,43 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WazeCCPIrregularitiesTransformation = void 0;
4
- const index_1 = require("../schema-definitions/index");
5
- const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
6
- const transformations_1 = require("@golemio/core/dist/integration-engine/transformations");
7
- const WazeCCPUtils_1 = require("./WazeCCPUtils");
8
- class WazeCCPIrregularitiesTransformation extends transformations_1.BaseTransformation {
4
+ const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
5
+ const _sch_1 = require("../../schema-definitions");
6
+ const WazeCCPUtils_1 = require("../WazeCCPUtils");
7
+ class WazeCCPIrregularitiesTransformation extends AbstractTransformation_1.AbstractTransformation {
9
8
  constructor() {
10
- super();
11
- /**
12
- * Transform the whole collection or one single element
13
- */
14
- this.transform = async (data) => {
15
- const rootStart = data.startTimeMillis;
16
- const downloadedAt = data.downloadedAt;
17
- if (!data.irregularities) {
18
- helpers_1.log.warn(`${this.name}: Data source returned empty data.`);
19
- return [];
20
- }
21
- const results = [];
22
- data.irregularities.forEach((element) => {
23
- const res = this.transformElement({
24
- ...element,
25
- downloadedAt,
26
- rootStart,
27
- });
28
- if (res) {
29
- results.push(res);
30
- }
31
- });
32
- return results;
33
- };
34
- this.transformElement = (irregularity) => {
35
- const rootStart = irregularity.rootStart;
36
- delete irregularity.rootStart;
37
- const downloadedAt = irregularity.downloadedAt;
38
- delete irregularity.downloadedAt;
39
- const irregularityHash = (0, WazeCCPUtils_1.generateAJIUniqueIdentifierHash)(irregularity, rootStart);
40
- const res = {
9
+ super(...arguments);
10
+ this.name = _sch_1.WazeCCP.irregularities.name;
11
+ this.transformInternal = (irregularity) => {
12
+ const { downloadedAt, rootStart, ...irregularityData } = irregularity;
13
+ const irregularityHash = (0, WazeCCPUtils_1.generateAJIUniqueIdentifierHash)(irregularityData, rootStart);
14
+ return {
41
15
  alerts_count: irregularity.alertsCount,
42
16
  cause_type: irregularity.causeType,
43
17
  city: irregularity.city,
@@ -70,9 +44,7 @@ class WazeCCPIrregularitiesTransformation extends transformations_1.BaseTransfor
70
44
  update_utc_date: new Date(+irregularity.updateDateMillis),
71
45
  uuid: irregularity.id,
72
46
  };
73
- return res;
74
47
  };
75
- this.name = index_1.WazeCCP.irregularities.name;
76
48
  }
77
49
  }
78
50
  exports.WazeCCPIrregularitiesTransformation = WazeCCPIrregularitiesTransformation;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WazeCCPIrregularitiesTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/WazeCCPIrregularitiesTransformation.ts"],"names":[],"mappings":";;;AAAA,6GAA0G;AAC1G,mDAA+B;AAE/B,kDAAkE;AAKlE,MAAa,mCAAoC,SAAQ,+CAGxD;IAHD;;QAIW,SAAI,GAAG,cAAO,CAAC,cAAc,CAAC,IAAI,CAAC;QAEhC,sBAAiB,GAAG,CAAC,YAA+C,EAAoB,EAAE;YAChG,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,gBAAgB,EAAE,GAAG,YAAY,CAAC;YACtE,MAAM,gBAAgB,GAAG,IAAA,8CAA+B,EAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;YAEtF,OAAO;gBACH,YAAY,EAAE,YAAY,CAAC,WAAW;gBACtC,UAAU,EAAE,YAAY,CAAC,SAAS;gBAClC,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,OAAO,EAAE,YAAY,CAAC,OAAO;gBAC7B,aAAa,EAAE,YAAY,CAAC,YAAY;gBACxC,cAAc,EAAE,YAAY,CAAC,aAAa;gBAC1C,qBAAqB,EAAE,YAAY,CAAC,mBAAmB;gBACvD,kBAAkB,EAAE,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,mBAAmB,CAAC;gBAC/D,aAAa,EAAE,YAAY;gBAC3B,aAAa,EAAE,YAAY,CAAC,YAAY;gBACxC,QAAQ,EAAE,YAAY,CAAC,OAAO;gBAC9B,EAAE,EAAE,gBAAgB;gBACpB,UAAU,EAAE,YAAY,CAAC,OAAO;gBAChC,SAAS,EAAE,YAAY,CAAC,QAAQ;gBAChC,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,UAAU,EAAE,YAAY,CAAC,SAAS;gBAClC,QAAQ,EAAE,YAAY,CAAC,OAAO;gBAC9B,WAAW,EAAE,YAAY,CAAC,SAAS;gBACnC,aAAa,EAAE,YAAY,CAAC,YAAY;gBACxC,OAAO,EAAE,YAAY,CAAC,OAAO;gBAC7B,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,KAAK,EAAE,YAAY,CAAC,KAAK;gBACzB,UAAU,EAAE,YAAY,CAAC,SAAS;gBAClC,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,KAAK,EAAE,YAAY,CAAC,KAAK;gBACzB,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,WAAW,EAAE,YAAY,CAAC,UAAU;gBACpC,kBAAkB,EAAE,YAAY,CAAC,gBAAgB;gBACjD,eAAe,EAAE,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC;gBACzD,IAAI,EAAE,YAAY,CAAC,EAAE;aACxB,CAAC;QACN,CAAC,CAAC;IACN,CAAC;CAAA;AA5CD,kFA4CC"}
@@ -0,0 +1,12 @@
1
+ import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
2
+ import { IJamDto } from "../../schema-definitions/interfaces/IJamDto";
3
+ import { IInputJamInfo } from "../../schema-definitions/datasources/interfaces/IInputJams";
4
+ type EnrichedInputJamInfoType = {
5
+ downloadedAt: Date;
6
+ rootStart: number;
7
+ } & IInputJamInfo;
8
+ export declare class WazeCCPJamsTransformation extends AbstractTransformation<EnrichedInputJamInfoType, IJamDto> {
9
+ name: any;
10
+ protected transformInternal: (jam: EnrichedInputJamInfoType) => IJamDto;
11
+ }
12
+ export {};
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WazeCCPJamsTransformation = void 0;
4
+ const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
5
+ const _sch_1 = require("../../schema-definitions");
6
+ const WazeCCPUtils_1 = require("../WazeCCPUtils");
7
+ class WazeCCPJamsTransformation extends AbstractTransformation_1.AbstractTransformation {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.name = _sch_1.WazeCCP.jams.name;
11
+ this.transformInternal = (jam) => {
12
+ const { downloadedAt, rootStart, ...jamData } = jam;
13
+ const jamHash = (0, WazeCCPUtils_1.generateAJIUniqueIdentifierHash)(jamData, rootStart);
14
+ return {
15
+ blocking_alert_id: jam.blockingAlertUuid,
16
+ city: jam.city || null,
17
+ country: jam.country,
18
+ delay: jam.delay,
19
+ downloaded_at: downloadedAt,
20
+ end_node: jam.endNode || null,
21
+ id: jamHash,
22
+ length: jam.length,
23
+ level: jam.level,
24
+ line: jam.line || null,
25
+ pub_millis: jam.pubMillis,
26
+ pub_utc_date: new Date(+jam.pubMillis),
27
+ road_type: jam.roadType,
28
+ speed: jam.speed,
29
+ speed_kmh: jam.speedKMH,
30
+ start_node: jam.startNode || null,
31
+ street: jam.street || null,
32
+ turn_line: jam.turnLine || null,
33
+ turn_type: jam.turnType || null,
34
+ type: jam.type,
35
+ uuid: jam.uuid,
36
+ };
37
+ };
38
+ }
39
+ }
40
+ exports.WazeCCPJamsTransformation = WazeCCPJamsTransformation;
41
+ //# sourceMappingURL=WazeCCPJamsTransformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WazeCCPJamsTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/WazeCCPJamsTransformation.ts"],"names":[],"mappings":";;;AAAA,6GAA0G;AAC1G,mDAA+B;AAE/B,kDAAkE;AAKlE,MAAa,yBAA0B,SAAQ,+CAAyD;IAAxG;;QACW,SAAI,GAAG,cAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAEtB,sBAAiB,GAAG,CAAC,GAA6B,EAAW,EAAE;YACrE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,CAAC;YACpD,MAAM,OAAO,GAAG,IAAA,8CAA+B,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAEpE,OAAO;gBACH,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;gBACxC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;gBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,aAAa,EAAE,YAAY;gBAC3B,QAAQ,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI;gBAC7B,EAAE,EAAE,OAAO;gBACX,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;gBACtB,UAAU,EAAE,GAAG,CAAC,SAAS;gBACzB,YAAY,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;gBACtC,SAAS,EAAE,GAAG,CAAC,QAAQ;gBACvB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,SAAS,EAAE,GAAG,CAAC,QAAQ;gBACvB,UAAU,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;gBACjC,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI;gBAC1B,SAAS,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;gBAC/B,SAAS,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;gBAC/B,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;aACjB,CAAC;QACN,CAAC,CAAC;IACN,CAAC;CAAA;AA/BD,8DA+BC"}
@@ -0,0 +1,3 @@
1
+ export * from "./WazeCCPAlertsTransformation";
2
+ export * from "./WazeCCPIrregularitiesTransformation";
3
+ export * from "./WazeCCPJamsTransformation";
@@ -0,0 +1,20 @@
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
+ __exportStar(require("./WazeCCPAlertsTransformation"), exports);
18
+ __exportStar(require("./WazeCCPIrregularitiesTransformation"), exports);
19
+ __exportStar(require("./WazeCCPJamsTransformation"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,wEAAsD;AACtD,8DAA4C"}
@@ -0,0 +1,5 @@
1
+ import { AbstractWorker } from "@golemio/core/dist/integration-engine/workers";
2
+ export declare class WazeCCPWorker extends AbstractWorker {
3
+ protected readonly name: any;
4
+ constructor();
5
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WazeCCPWorker = void 0;
4
+ const workers_1 = require("@golemio/core/dist/integration-engine/workers");
5
+ const index_1 = require("../../schema-definitions/index");
6
+ const RefreshAlertsInDBTask_1 = require("./tasks/RefreshAlertsInDBTask");
7
+ const RefreshAllDataInDBTask_1 = require("./tasks/RefreshAllDataInDBTask");
8
+ const RefreshIrregularitiesInDBTask_1 = require("./tasks/RefreshIrregularitiesInDBTask");
9
+ const RefreshJamsInDBTask_1 = require("./tasks/RefreshJamsInDBTask");
10
+ class WazeCCPWorker extends workers_1.AbstractWorker {
11
+ constructor() {
12
+ super();
13
+ this.name = index_1.WazeCCP.name.toLowerCase();
14
+ this.registerTask(new RefreshAlertsInDBTask_1.RefreshAlertsInDBTask(this.getQueuePrefix()));
15
+ this.registerTask(new RefreshIrregularitiesInDBTask_1.RefreshIrregularitiesInDBTask(this.getQueuePrefix()));
16
+ this.registerTask(new RefreshJamsInDBTask_1.RefreshJamsInDBTask(this.getQueuePrefix()));
17
+ this.registerTask(new RefreshAllDataInDBTask_1.RefreshAllDataInDBTask(this.getQueuePrefix()));
18
+ }
19
+ }
20
+ exports.WazeCCPWorker = WazeCCPWorker;
21
+ //# sourceMappingURL=WazeCCPWorker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WazeCCPWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/WazeCCPWorker.ts"],"names":[],"mappings":";;;AAAA,2EAA+E;AAC/E,0DAAqC;AACrC,yEAAsE;AACtE,2EAAwE;AACxE,yFAAsF;AACtF,qEAAkE;AAElE,MAAa,aAAc,SAAQ,wBAAc;IAG7C;QACI,KAAK,EAAE,CAAC;QAHO,SAAI,GAAG,eAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAIjD,IAAI,CAAC,YAAY,CAAC,IAAI,6CAAqB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,CAAC,IAAI,6DAA6B,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,YAAY,CAAC,IAAI,yCAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,YAAY,CAAC,IAAI,+CAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;CACJ;AAVD,sCAUC"}
@@ -0,0 +1,2 @@
1
+ import { WazeCCPWorker } from "./WazeCCPWorker";
2
+ export declare const workers: (typeof WazeCCPWorker)[];
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.workers = void 0;
4
+ const WazeCCPWorker_1 = require("./WazeCCPWorker");
5
+ exports.workers = [WazeCCPWorker_1.WazeCCPWorker];
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/index.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAEnC,QAAA,OAAO,GAAG,CAAC,6BAAa,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine";
2
+ export declare class RefreshAlertsInDBTask extends AbstractEmptyTask {
3
+ readonly queueName = "refreshAlertsInDB";
4
+ readonly queueTtl: number;
5
+ private readonly dataSource;
6
+ private readonly model;
7
+ constructor(queuePrefix: string);
8
+ protected execute(): Promise<void>;
9
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RefreshAlertsInDBTask = void 0;
4
+ const WazeAlertsRepository_1 = require("../../repositories/WazeAlertsRepository");
5
+ const index_1 = require("../../../schema-definitions/index");
6
+ const config_1 = require("@golemio/core/dist/integration-engine/config");
7
+ const datasources_1 = require("@golemio/core/dist/integration-engine/datasources");
8
+ const HTTPFetchProtocolStrategy_1 = require("@golemio/core/dist/integration-engine/datasources/protocol-strategy/HTTPFetchProtocolStrategy");
9
+ const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
10
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
11
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
12
+ const WazeCCPAlertsTransformation_1 = require("../../transformations/WazeCCPAlertsTransformation");
13
+ class RefreshAlertsInDBTask extends integration_engine_1.AbstractEmptyTask {
14
+ constructor(queuePrefix) {
15
+ super(queuePrefix);
16
+ this.queueName = "refreshAlertsInDB";
17
+ this.queueTtl = 90 * 1000; // 90 seconds
18
+ this.dataSource = new datasources_1.DataSource(index_1.WazeCCP.alerts.name + "DataSource", new HTTPFetchProtocolStrategy_1.HTTPFetchProtocolStrategy({
19
+ headers: {},
20
+ method: "GET",
21
+ url: config_1.config.datasources.WazeCCP + "&types=alerts",
22
+ }), new datasources_1.JSONDataTypeStrategy({ resultsPath: "" }), new golemio_validator_1.JSONSchemaValidator(index_1.WazeCCP.alerts.name + "DataSource", index_1.WazeCCP.alerts.datasourceJsonSchema));
23
+ this.model = new WazeAlertsRepository_1.WazeAlertsRepository();
24
+ }
25
+ async execute() {
26
+ const data = await this.dataSource.getAll();
27
+ if (!data.alerts) {
28
+ helpers_1.log.warn(`${index_1.WazeCCP.alerts.name}: Data source returned empty data.`);
29
+ return;
30
+ }
31
+ const transformation = new WazeCCPAlertsTransformation_1.WazeCCPAlertsTransformation(new Date());
32
+ const transformedData = transformation.transformArray(data.alerts);
33
+ await this.model.saveAlerts(transformedData);
34
+ }
35
+ }
36
+ exports.RefreshAlertsInDBTask = RefreshAlertsInDBTask;
37
+ //# sourceMappingURL=RefreshAlertsInDBTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefreshAlertsInDBTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/RefreshAlertsInDBTask.ts"],"names":[],"mappings":";;;AAAA,kFAA6E;AAC7E,6DAAqC;AACrC,yEAAsE;AACtE,mFAAqG;AACrG,6IAA0I;AAC1I,2EAAoE;AACpE,8EAA0E;AAC1E,mFAAkF;AAClF,mGAAgG;AAEhG,MAAa,qBAAsB,SAAQ,sCAAiB;IAOxD,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QAPP,cAAS,GAAG,mBAAmB,CAAC;QAChC,aAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QAQ/C,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAU,CAC5B,eAAO,CAAC,MAAM,CAAC,IAAI,GAAG,YAAY,EAClC,IAAI,qDAAyB,CAAC;YAC1B,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,eAAM,CAAC,WAAW,CAAC,OAAO,GAAG,eAAe;SACpD,CAAC,EACF,IAAI,kCAAoB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,EAC7C,IAAI,uCAAmB,CAAC,eAAO,CAAC,MAAM,CAAC,IAAI,GAAG,YAAY,EAAE,eAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CACnG,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,2CAAoB,EAAE,CAAC;IAC5C,CAAC;IAES,KAAK,CAAC,OAAO;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAE5C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,aAAG,CAAC,IAAI,CAAC,GAAG,eAAO,CAAC,MAAM,CAAC,IAAI,oCAAoC,CAAC,CAAC;YACrE,OAAO;SACV;QAED,MAAM,cAAc,GAAG,IAAI,yDAA2B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACnE,MAAM,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;CACJ;AAnCD,sDAmCC"}
@@ -0,0 +1,6 @@
1
+ import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine";
2
+ export declare class RefreshAllDataInDBTask extends AbstractEmptyTask {
3
+ readonly queueName = "refreshAllDataInDB";
4
+ readonly queueTtl: number;
5
+ protected execute(): Promise<void>;
6
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RefreshAllDataInDBTask = void 0;
4
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
5
+ const connectors_1 = require("@golemio/core/dist/integration-engine/connectors");
6
+ class RefreshAllDataInDBTask extends integration_engine_1.AbstractEmptyTask {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.queueName = "refreshAllDataInDB";
10
+ this.queueTtl = 4 * 60 * 1000; // 4 minutes
11
+ }
12
+ async execute() {
13
+ const queueNames = ["refreshAlertsInDB", "refreshIrregularitiesInDB", "refreshJamsInDB"];
14
+ const sendMessagePromises = [];
15
+ for (const queueName of queueNames) {
16
+ sendMessagePromises.push(connectors_1.AMQPConnector.sendMessage(`workers.${this.queuePrefix}.${queueName}`, "Just do it!"));
17
+ }
18
+ await Promise.all(sendMessagePromises);
19
+ }
20
+ }
21
+ exports.RefreshAllDataInDBTask = RefreshAllDataInDBTask;
22
+ //# sourceMappingURL=RefreshAllDataInDBTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefreshAllDataInDBTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/RefreshAllDataInDBTask.ts"],"names":[],"mappings":";;;AAAA,8EAA0E;AAC1E,iFAAiF;AAEjF,MAAa,sBAAuB,SAAQ,sCAAiB;IAA7D;;QACoB,cAAS,GAAG,oBAAoB,CAAC;QACjC,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;IAY1D,CAAC;IAVa,KAAK,CAAC,OAAO;QACnB,MAAM,UAAU,GAAG,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,iBAAiB,CAAC,CAAC;QACzF,MAAM,mBAAmB,GAA4B,EAAE,CAAC;QAExD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAChC,mBAAmB,CAAC,IAAI,CAAC,0BAAa,CAAC,WAAW,CAAC,WAAW,IAAI,CAAC,WAAW,IAAI,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;SAClH;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC3C,CAAC;CACJ;AAdD,wDAcC"}
@@ -0,0 +1,10 @@
1
+ import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine";
2
+ export declare class RefreshIrregularitiesInDBTask extends AbstractEmptyTask {
3
+ readonly queueName = "refreshIrregularitiesInDB";
4
+ readonly queueTtl: number;
5
+ private readonly dataSource;
6
+ private readonly transformation;
7
+ private readonly model;
8
+ constructor(queuePrefix: string);
9
+ protected execute(): Promise<void>;
10
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RefreshIrregularitiesInDBTask = void 0;
4
+ const index_1 = require("../../../schema-definitions/index");
5
+ const IrregularityDto_1 = require("../../../schema-definitions/models/IrregularityDto");
6
+ const config_1 = require("@golemio/core/dist/integration-engine/config");
7
+ const datasources_1 = require("@golemio/core/dist/integration-engine/datasources");
8
+ const HTTPFetchProtocolStrategy_1 = require("@golemio/core/dist/integration-engine/datasources/protocol-strategy/HTTPFetchProtocolStrategy");
9
+ const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
10
+ const models_1 = require("@golemio/core/dist/integration-engine/models");
11
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
12
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
13
+ const WazeCCPIrregularitiesTransformation_1 = require("../../transformations/WazeCCPIrregularitiesTransformation");
14
+ class RefreshIrregularitiesInDBTask extends integration_engine_1.AbstractEmptyTask {
15
+ constructor(queuePrefix) {
16
+ super(queuePrefix);
17
+ this.queueName = "refreshIrregularitiesInDB";
18
+ this.queueTtl = 4 * 60 * 1000; // 4 minutes
19
+ this.dataSource = new datasources_1.DataSource(index_1.WazeCCP.irregularities.name + "DataSource", new HTTPFetchProtocolStrategy_1.HTTPFetchProtocolStrategy({
20
+ headers: {},
21
+ method: "GET",
22
+ url: config_1.config.datasources.WazeCCP + "&types=irregularities",
23
+ }), new datasources_1.JSONDataTypeStrategy({ resultsPath: "" }), new golemio_validator_1.JSONSchemaValidator(index_1.WazeCCP.irregularities.name + "DataSource", index_1.WazeCCP.irregularities.datasourceJsonSchema));
24
+ this.transformation = new WazeCCPIrregularitiesTransformation_1.WazeCCPIrregularitiesTransformation();
25
+ this.model = new models_1.PostgresModel(index_1.WazeCCP.irregularities.name + "Model", {
26
+ outputSequelizeAttributes: IrregularityDto_1.IrregularitiesDto.attributeModel,
27
+ pgTableName: index_1.WazeCCP.irregularities.pgTableName,
28
+ pgSchema: index_1.WazeCCP.pgSchema,
29
+ savingType: "insertOrUpdate",
30
+ }, new golemio_validator_1.JSONSchemaValidator(index_1.WazeCCP.irregularities.name + "ModelValidator", IrregularityDto_1.IrregularitiesDto.jsonSchema));
31
+ }
32
+ async execute() {
33
+ const data = await this.dataSource.getAll();
34
+ if (!data.irregularities) {
35
+ helpers_1.log.warn(`${index_1.WazeCCP.irregularities.name}: Data source returned empty data.`);
36
+ return;
37
+ }
38
+ const downloadedAt = new Date();
39
+ const rootStart = data.startTimeMillis;
40
+ const enriched = data.irregularities.map((el) => ({ ...el, downloadedAt, rootStart }));
41
+ const transformedData = this.transformation.transformArray(enriched);
42
+ await this.model.saveBySqlFunction(transformedData, ["id"]);
43
+ }
44
+ }
45
+ exports.RefreshIrregularitiesInDBTask = RefreshIrregularitiesInDBTask;
46
+ //# sourceMappingURL=RefreshIrregularitiesInDBTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefreshIrregularitiesInDBTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/RefreshIrregularitiesInDBTask.ts"],"names":[],"mappings":";;;AAAA,6DAAqC;AACrC,wFAAgE;AAChE,yEAAsE;AACtE,mFAAqG;AACrG,6IAA0I;AAC1I,2EAAoE;AACpE,yEAA6E;AAC7E,8EAA0E;AAC1E,mFAAkF;AAClF,mHAAgH;AAGhH,MAAa,6BAA8B,SAAQ,sCAAiB;IAQhE,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QARP,cAAS,GAAG,2BAA2B,CAAC;QACxC,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QASlD,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAU,CAC5B,eAAO,CAAC,cAAc,CAAC,IAAI,GAAG,YAAY,EAC1C,IAAI,qDAAyB,CAAC;YAC1B,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,eAAM,CAAC,WAAW,CAAC,OAAO,GAAG,uBAAuB;SAC5D,CAAC,EACF,IAAI,kCAAoB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,EAC7C,IAAI,uCAAmB,CAAC,eAAO,CAAC,cAAc,CAAC,IAAI,GAAG,YAAY,EAAE,eAAO,CAAC,cAAc,CAAC,oBAAoB,CAAC,CACnH,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,yEAAmC,EAAE,CAAC;QAChE,IAAI,CAAC,KAAK,GAAG,IAAI,sBAAa,CAC1B,eAAO,CAAC,cAAc,CAAC,IAAI,GAAG,OAAO,EACrC;YACI,yBAAyB,EAAE,mCAAiB,CAAC,cAAc;YAC3D,WAAW,EAAE,eAAO,CAAC,cAAc,CAAC,WAAW;YAC/C,QAAQ,EAAE,eAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,gBAAgB;SAC/B,EACD,IAAI,uCAAmB,CAAC,eAAO,CAAC,cAAc,CAAC,IAAI,GAAG,gBAAgB,EAAE,mCAAiB,CAAC,UAAU,CAAC,CACxG,CAAC;IACN,CAAC;IAES,KAAK,CAAC,OAAO;QACnB,MAAM,IAAI,GAAyB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAElE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,aAAG,CAAC,IAAI,CAAC,GAAG,eAAO,CAAC,cAAc,CAAC,IAAI,oCAAoC,CAAC,CAAC;YAC7E,OAAO;SACV;QAED,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAA0B,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/G,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;CACJ;AAhDD,sEAgDC"}
@@ -0,0 +1,10 @@
1
+ import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine";
2
+ export declare class RefreshJamsInDBTask extends AbstractEmptyTask {
3
+ readonly queueName = "refreshJamsInDB";
4
+ readonly queueTtl: number;
5
+ private readonly dataSource;
6
+ private readonly transformation;
7
+ private readonly model;
8
+ constructor(queuePrefix: string);
9
+ protected execute(): Promise<void>;
10
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RefreshJamsInDBTask = void 0;
4
+ const index_1 = require("../../../schema-definitions/index");
5
+ const JamDto_1 = require("../../../schema-definitions/models/JamDto");
6
+ const config_1 = require("@golemio/core/dist/integration-engine/config");
7
+ const datasources_1 = require("@golemio/core/dist/integration-engine/datasources");
8
+ const HTTPFetchProtocolStrategy_1 = require("@golemio/core/dist/integration-engine/datasources/protocol-strategy/HTTPFetchProtocolStrategy");
9
+ const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
10
+ const models_1 = require("@golemio/core/dist/integration-engine/models");
11
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
12
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
13
+ const WazeCCPJamsTransformation_1 = require("../../transformations/WazeCCPJamsTransformation");
14
+ class RefreshJamsInDBTask extends integration_engine_1.AbstractEmptyTask {
15
+ constructor(queuePrefix) {
16
+ super(queuePrefix);
17
+ this.queueName = "refreshJamsInDB";
18
+ this.queueTtl = 4 * 60 * 1000; // 4 minutes
19
+ this.dataSource = new datasources_1.DataSource(index_1.WazeCCP.jams.name + "DataSource", new HTTPFetchProtocolStrategy_1.HTTPFetchProtocolStrategy({
20
+ headers: {},
21
+ method: "GET",
22
+ url: config_1.config.datasources.WazeCCP + "&types=traffic",
23
+ }), new datasources_1.JSONDataTypeStrategy({ resultsPath: "" }), new golemio_validator_1.JSONSchemaValidator(index_1.WazeCCP.jams.name + "DataSource", index_1.WazeCCP.jams.datasourceJsonSchema));
24
+ this.transformation = new WazeCCPJamsTransformation_1.WazeCCPJamsTransformation();
25
+ this.model = new models_1.PostgresModel(index_1.WazeCCP.jams.name + "Model", {
26
+ outputSequelizeAttributes: JamDto_1.JamDto.attributeModel,
27
+ pgTableName: index_1.WazeCCP.jams.pgTableName,
28
+ pgSchema: index_1.WazeCCP.pgSchema,
29
+ savingType: "insertOrUpdate",
30
+ }, new golemio_validator_1.JSONSchemaValidator(index_1.WazeCCP.jams.name + "ModelValidator", JamDto_1.JamDto.jsonSchema));
31
+ }
32
+ async execute() {
33
+ const data = await this.dataSource.getAll();
34
+ if (!data.jams) {
35
+ helpers_1.log.warn(`${index_1.WazeCCP.jams.name}: Data source returned empty data.`);
36
+ return;
37
+ }
38
+ const downloadedAt = new Date();
39
+ const rootStart = data.startTimeMillis;
40
+ const enriched = data.jams.map((el) => ({ ...el, downloadedAt, rootStart }));
41
+ const transformedData = this.transformation.transformArray(enriched);
42
+ await this.model.saveBySqlFunction(transformedData, ["id", "pub_utc_date"]);
43
+ }
44
+ }
45
+ exports.RefreshJamsInDBTask = RefreshJamsInDBTask;
46
+ //# sourceMappingURL=RefreshJamsInDBTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefreshJamsInDBTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/RefreshJamsInDBTask.ts"],"names":[],"mappings":";;;AAAA,6DAAqC;AACrC,sEAA4C;AAC5C,yEAAsE;AACtE,mFAAqG;AACrG,6IAA0I;AAC1I,2EAAoE;AACpE,yEAA6E;AAC7E,8EAA0E;AAC1E,mFAAkF;AAClF,+FAA4F;AAG5F,MAAa,mBAAoB,SAAQ,sCAAiB;IAQtD,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QARP,cAAS,GAAG,iBAAiB,CAAC;QAC9B,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QASlD,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAU,CAC5B,eAAO,CAAC,IAAI,CAAC,IAAI,GAAG,YAAY,EAChC,IAAI,qDAAyB,CAAC;YAC1B,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,eAAM,CAAC,WAAW,CAAC,OAAO,GAAG,gBAAgB;SACrD,CAAC,EACF,IAAI,kCAAoB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,EAC7C,IAAI,uCAAmB,CAAC,eAAO,CAAC,IAAI,CAAC,IAAI,GAAG,YAAY,EAAE,eAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAC/F,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,qDAAyB,EAAE,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,IAAI,sBAAa,CAC1B,eAAO,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,EAC3B;YACI,yBAAyB,EAAE,eAAM,CAAC,cAAc;YAChD,WAAW,EAAE,eAAO,CAAC,IAAI,CAAC,WAAW;YACrC,QAAQ,EAAE,eAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,gBAAgB;SAC/B,EACD,IAAI,uCAAmB,CAAC,eAAO,CAAC,IAAI,CAAC,IAAI,GAAG,gBAAgB,EAAE,eAAM,CAAC,UAAU,CAAC,CACnF,CAAC;IACN,CAAC;IAES,KAAK,CAAC,OAAO;QACnB,MAAM,IAAI,GAAe,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAExD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,aAAG,CAAC,IAAI,CAAC,GAAG,eAAO,CAAC,IAAI,CAAC,IAAI,oCAAoC,CAAC,CAAC;YACnE,OAAO;SACV;QAED,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAiB,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC5F,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IAChF,CAAC;CACJ;AAhDD,kDAgDC"}
@@ -0,0 +1,4 @@
1
+ export * from "./RefreshAlertsInDBTask";
2
+ export * from "./RefreshAllDataInDBTask";
3
+ export * from "./RefreshIrregularitiesInDBTask";
4
+ export * from "./RefreshJamsInDBTask";
@@ -0,0 +1,21 @@
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
+ __exportStar(require("./RefreshAlertsInDBTask"), exports);
18
+ __exportStar(require("./RefreshAllDataInDBTask"), exports);
19
+ __exportStar(require("./RefreshIrregularitiesInDBTask"), exports);
20
+ __exportStar(require("./RefreshJamsInDBTask"), exports);
21
+ //# 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,0DAAwC;AACxC,2DAAyC;AACzC,kEAAgD;AAChD,wDAAsC"}