rez_core 2.2.252 → 2.2.254

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 (42) hide show
  1. package/dist/module/communication/communication.module.js +2 -0
  2. package/dist/module/communication/communication.module.js.map +1 -1
  3. package/dist/module/communication/factories/telephone.factory.d.ts +3 -1
  4. package/dist/module/communication/factories/telephone.factory.js +9 -3
  5. package/dist/module/communication/factories/telephone.factory.js.map +1 -1
  6. package/dist/module/communication/service/communication.service.js +1 -0
  7. package/dist/module/communication/service/communication.service.js.map +1 -1
  8. package/dist/module/communication/strategies/telephone/ozonetel-voice.strategy.d.ts +1 -0
  9. package/dist/module/communication/strategies/telephone/ozonetel-voice.strategy.js.map +1 -1
  10. package/dist/module/communication/strategies/telephone/tubelight-voice.strategy.d.ts +15 -0
  11. package/dist/module/communication/strategies/telephone/tubelight-voice.strategy.js +104 -0
  12. package/dist/module/communication/strategies/telephone/tubelight-voice.strategy.js.map +1 -0
  13. package/dist/module/meta/controller/entity.controller.js +11 -6
  14. package/dist/module/meta/controller/entity.controller.js.map +1 -1
  15. package/dist/module/user/service/user.service.d.ts +2 -1
  16. package/dist/module/user/service/user.service.js +2 -0
  17. package/dist/module/user/service/user.service.js.map +1 -1
  18. package/dist/module/workflow/entity/action-data.entity.d.ts +1 -0
  19. package/dist/module/workflow/entity/action-data.entity.js +4 -0
  20. package/dist/module/workflow/entity/action-data.entity.js.map +1 -1
  21. package/dist/module/workflow/entity/action.entity.d.ts +1 -0
  22. package/dist/module/workflow/entity/action.entity.js +4 -0
  23. package/dist/module/workflow/entity/action.entity.js.map +1 -1
  24. package/dist/module/workflow-automation/service/workflow-automation-engine.service.d.ts +1 -1
  25. package/dist/module/workflow-automation/service/workflow-automation-engine.service.js +13 -5
  26. package/dist/module/workflow-automation/service/workflow-automation-engine.service.js.map +1 -1
  27. package/dist/module/workflow-automation/service/workflow-automation.service.d.ts +4 -2
  28. package/dist/module/workflow-automation/service/workflow-automation.service.js +86 -15
  29. package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
  30. package/dist/tsconfig.build.tsbuildinfo +1 -1
  31. package/package.json +1 -1
  32. package/src/module/communication/communication.module.ts +2 -0
  33. package/src/module/communication/factories/telephone.factory.ts +6 -1
  34. package/src/module/communication/service/communication.service.ts +1 -0
  35. package/src/module/communication/strategies/telephone/ozonetel-voice.strategy.ts +1 -0
  36. package/src/module/communication/strategies/telephone/tubelight-voice.strategy.ts +122 -0
  37. package/src/module/meta/controller/entity.controller.ts +51 -42
  38. package/src/module/user/service/user.service.ts +2 -1
  39. package/src/module/workflow/entity/action-data.entity.ts +3 -0
  40. package/src/module/workflow/entity/action.entity.ts +3 -0
  41. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +53 -26
  42. package/src/module/workflow-automation/service/workflow-automation.service.ts +139 -27
@@ -71,6 +71,10 @@ __decorate([
71
71
  (0, typeorm_1.Column)({ nullable: true, default: 0 }),
72
72
  __metadata("design:type", Number)
73
73
  ], ActionDataEntity.prototype, "resubmit_count", void 0);
74
+ __decorate([
75
+ (0, typeorm_1.Column)({ type: 'int', nullable: true }),
76
+ __metadata("design:type", Number)
77
+ ], ActionDataEntity.prototype, "dependent_action_id", void 0);
74
78
  exports.ActionDataEntity = ActionDataEntity = __decorate([
75
79
  (0, typeorm_1.Entity)({ name: 'cr_wf_action_data' }),
76
80
  __metadata("design:paramtypes", [])
@@ -1 +1 @@
1
- {"version":3,"file":"action-data.entity.js","sourceRoot":"","sources":["../../../../src/module/workflow/entity/action-data.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6EAAuE;AACvE,qCAAyC;AAGlC,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,+BAAU;IAC9C;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;IACnC,CAAC;CAwCF,CAAA;AA5CY,4CAAgB;AAO3B;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACT;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACX;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACV;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACf,IAAI;oDAAC;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACjB,IAAI;kDAAC;AAGf;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACL;AAGtB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACF;AAGzB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACA;AAG3B;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACV;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;iDACN;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACzB;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;kDAC3B;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;wDAChB;2BA3CZ,gBAAgB;IAD5B,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;;GACzB,gBAAgB,CA4C5B"}
1
+ {"version":3,"file":"action-data.entity.js","sourceRoot":"","sources":["../../../../src/module/workflow/entity/action-data.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6EAAuE;AACvE,qCAAyC;AAGlC,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,+BAAU;IAC9C;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;IACnC,CAAC;CA2CF,CAAA;AA/CY,4CAAgB;AAO3B;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACT;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACX;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACV;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACf,IAAI;oDAAC;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACjB,IAAI;kDAAC;AAGf;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACL;AAGtB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACF;AAGzB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACA;AAG3B;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACV;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;iDACN;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACzB;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;kDAC3B;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;wDAChB;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6DACZ;2BA9CjB,gBAAgB;IAD5B,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;;GACzB,gBAAgB,CA+C5B"}
@@ -11,4 +11,5 @@ export declare class ActionEntity extends BaseEntity {
11
11
  user_id: number;
12
12
  assignment_type: string;
13
13
  is_template: boolean;
14
+ dependent_action_id: number;
14
15
  }
@@ -60,6 +60,10 @@ __decorate([
60
60
  (0, typeorm_1.Column)({ type: 'boolean', nullable: true }),
61
61
  __metadata("design:type", Boolean)
62
62
  ], ActionEntity.prototype, "is_template", void 0);
63
+ __decorate([
64
+ (0, typeorm_1.Column)({ type: 'int', nullable: true }),
65
+ __metadata("design:type", Number)
66
+ ], ActionEntity.prototype, "dependent_action_id", void 0);
63
67
  exports.ActionEntity = ActionEntity = __decorate([
64
68
  (0, typeorm_1.Entity)({ name: 'cr_wf_action' }),
65
69
  __metadata("design:paramtypes", [])
@@ -1 +1 @@
1
- {"version":3,"file":"action.entity.js","sourceRoot":"","sources":["../../../../src/module/workflow/entity/action.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uEAAsD;AACtD,6EAAuE;AACvE,qCAAyC;AAGlC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,+BAAU;IAC1C;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,wBAAM,CAAC;IAC5B,CAAC;CA+BF,CAAA;AAnCY,oCAAY;AAOvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACpB;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACpB;AAGxB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACjB;AAG3B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CAC3B;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACxB;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDAChB;AAG5B;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;mDACjB;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACX;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACpB;AAGxB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACvB;uBAlCV,YAAY;IADxB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;GACpB,YAAY,CAmCxB"}
1
+ {"version":3,"file":"action.entity.js","sourceRoot":"","sources":["../../../../src/module/workflow/entity/action.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uEAAsD;AACtD,6EAAuE;AACvE,qCAAyC;AAGlC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,+BAAU;IAC1C;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,wBAAM,CAAC;IAC5B,CAAC;CAkCF,CAAA;AAtCY,oCAAY;AAOvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACpB;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACpB;AAGxB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACjB;AAG3B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CAC3B;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACxB;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDAChB;AAG5B;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;mDACjB;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACX;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACpB;AAGxB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACvB;AAGrB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACZ;uBArCjB,YAAY;IADxB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;GACpB,YAAY,CAsCxB"}
@@ -7,6 +7,6 @@ export declare class WorkflowAutomationEngineService {
7
7
  private readonly actions;
8
8
  constructor(wfService: WorkflowAutomationService, filterEvaluator: FilterEvaluatorService);
9
9
  registerAction(actionName: string, actionInstance: Action): void;
10
- handleEntityEvent(entityType: any, eventType: any, newEntity: any, oldEntity: any, user: any): Promise<void>;
10
+ handleEntityEvent(entityType: string, eventType: 'CREATE' | 'UPDATE' | 'DELETE', newEntity: any, user: any, preUpdateStates?: Record<number, boolean> | null): Promise<void>;
11
11
  private executeActions;
12
12
  }
@@ -25,15 +25,23 @@ let WorkflowAutomationEngineService = class WorkflowAutomationEngineService {
25
25
  registerAction(actionName, actionInstance) {
26
26
  this.actions.set(actionName, actionInstance);
27
27
  }
28
- async handleEntityEvent(entityType, eventType, newEntity, oldEntity, user) {
28
+ async handleEntityEvent(entityType, eventType, newEntity, user, preUpdateStates) {
29
29
  const workflows = await this.wfService.getActiveRules(entityType, eventType);
30
30
  for (const wf of workflows) {
31
- const eventMatched = await this.filterEvaluator.evaluateTriggerAttributes(oldEntity, newEntity, wf.condition_filter_code);
32
- console.log(eventMatched, 'eventMatched');
33
- if (!eventMatched)
31
+ let triggerMatched = false;
32
+ if (eventType === 'CREATE') {
33
+ triggerMatched = await this.filterEvaluator.evaluateCriteria(entityType, wf.condition_filter_code, newEntity.id, user);
34
+ }
35
+ else if (eventType === 'UPDATE' && preUpdateStates) {
36
+ const before = preUpdateStates[wf.id] ?? false;
37
+ const after = await this.filterEvaluator.evaluateCriteria(entityType, wf.condition_filter_code, newEntity.id, user);
38
+ triggerMatched = before !== after && after === true;
39
+ }
40
+ console.log(`[Workflow:${wf.id}] Step 1 - Trigger matched:`, triggerMatched);
41
+ if (!triggerMatched)
34
42
  continue;
35
43
  const criteriaMatched = await this.filterEvaluator.evaluateCriteria(entityType, wf.criteria_filter_code, newEntity.id, user);
36
- console.log(criteriaMatched, 'criteriaMatched');
44
+ console.log(`[Workflow:${wf.id}] Step 2 - Criteria matched:`, criteriaMatched);
37
45
  if (!criteriaMatched)
38
46
  continue;
39
47
  await this.executeActions(wf.id, newEntity, user);
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-automation-engine.service.js","sourceRoot":"","sources":["../../../../src/module/workflow-automation/service/workflow-automation-engine.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2CAAoD;AACpD,+EAA0E;AAC1E,4FAAuF;AAIhF,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAG1C,YAEE,SAAqD,EACpC,eAAuC;QADvC,cAAS,GAAT,SAAS,CAA2B;QACpC,oBAAe,GAAf,eAAe,CAAwB;QALzC,YAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAMlD,CAAC;IAEJ,cAAc,CAAC,UAAkB,EAAE,cAAsB;QACvD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC/C,CAAC;IAKD,KAAK,CAAC,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI;QACvE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CACnD,UAAU,EACV,SAAS,CACV,CAAC;QAEF,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,yBAAyB,CACvE,SAAS,EACT,SAAS,EACT,EAAE,CAAC,qBAAqB,CACzB,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YAC1C,IAAI,CAAC,YAAY;gBAAE,SAAS;YAE5B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CACjE,UAAU,EACV,EAAE,CAAC,oBAAoB,EACvB,SAAS,CAAC,EAAE,EACZ,IAAI,CACL,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;YAChD,IAAI,CAAC,eAAe;gBAAE,SAAS;YAE/B,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,sBAA8B,EAC9B,MAAW,EACX,IAAS;QAGT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CACpD,sBAAsB,CACvB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAGtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CACV,0CAA0C,MAAM,CAAC,gBAAgB,EAAE,CACpE,CAAC;gBACF,SAAS;YACX,CAAC;YAED,OAAO,CAAC,GAAG,CACT,uBAAuB,MAAM,CAAC,gBAAgB,eAAe,MAAM,CAAC,EAAE,EAAE,CACzE,CAAC;YACF,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF,CAAA;AAvEY,0EAA+B;0CAA/B,+BAA+B;IAD3C,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,eAAM,EAAC,2BAA2B,CAAC,CAAA;qCACR,uDAAyB;QACnB,iDAAsB;GAN/C,+BAA+B,CAuE3C"}
1
+ {"version":3,"file":"workflow-automation-engine.service.js","sourceRoot":"","sources":["../../../../src/module/workflow-automation/service/workflow-automation-engine.service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Repository } from 'typeorm';
1
+ import { DataSource, Repository } from 'typeorm';
2
2
  import { WorkflowAutomation } from '../entity/workflow-automation.entity';
3
3
  import { WorkflowAutomationActionEntity } from '../entity/workflow-automation-action.entity';
4
4
  import { EntityServiceImpl } from 'src/module/meta/service/entity-service-impl.service';
@@ -8,7 +8,9 @@ export declare class WorkflowAutomationService extends EntityServiceImpl {
8
8
  private readonly wfRepo;
9
9
  private readonly actionRepo;
10
10
  private readonly savedFilterService;
11
- constructor(wfRepo: Repository<WorkflowAutomation>, actionRepo: Repository<WorkflowAutomationActionEntity>, savedFilterService: SavedFilterService);
11
+ private readonly dataSource;
12
+ private readonly logger;
13
+ constructor(wfRepo: Repository<WorkflowAutomation>, actionRepo: Repository<WorkflowAutomationActionEntity>, savedFilterService: SavedFilterService, dataSource: DataSource);
12
14
  createRule(data: Partial<WorkflowAutomation>): Promise<WorkflowAutomation>;
13
15
  updateRule(id: number, data: Partial<WorkflowAutomation>): Promise<WorkflowAutomation | null>;
14
16
  deleteRule(id: number): Promise<void>;
@@ -11,6 +11,7 @@ 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 WorkflowAutomationService_1;
14
15
  Object.defineProperty(exports, "__esModule", { value: true });
15
16
  exports.WorkflowAutomationService = void 0;
16
17
  const common_1 = require("@nestjs/common");
@@ -20,12 +21,15 @@ const workflow_automation_entity_1 = require("../entity/workflow-automation.enti
20
21
  const workflow_automation_action_entity_1 = require("../entity/workflow-automation-action.entity");
21
22
  const entity_service_impl_service_1 = require("../../meta/service/entity-service-impl.service");
22
23
  const saved_filter_service_1 = require("../../filter/service/saved-filter.service");
23
- let WorkflowAutomationService = class WorkflowAutomationService extends entity_service_impl_service_1.EntityServiceImpl {
24
- constructor(wfRepo, actionRepo, savedFilterService) {
24
+ const global_constant_1 = require("../../../constant/global.constant");
25
+ let WorkflowAutomationService = WorkflowAutomationService_1 = class WorkflowAutomationService extends entity_service_impl_service_1.EntityServiceImpl {
26
+ constructor(wfRepo, actionRepo, savedFilterService, dataSource) {
25
27
  super();
26
28
  this.wfRepo = wfRepo;
27
29
  this.actionRepo = actionRepo;
28
30
  this.savedFilterService = savedFilterService;
31
+ this.dataSource = dataSource;
32
+ this.logger = new common_1.Logger(WorkflowAutomationService_1.name);
29
33
  }
30
34
  async createRule(data) {
31
35
  const rule = this.wfRepo.create(data);
@@ -55,54 +59,121 @@ let WorkflowAutomationService = class WorkflowAutomationService extends entity_s
55
59
  });
56
60
  }
57
61
  async updateEntity(entityData, loggedInUser) {
62
+ this.logger.debug(`Updating WorkflowAutomation with data: ${JSON.stringify(entityData)}`);
58
63
  const { event, criteria, action, ...workflowData } = entityData;
64
+ this.logger.log(`Updating core workflow fields for workflow...`);
59
65
  let workflow = await super.updateEntity(workflowData, loggedInUser);
66
+ this.logger.debug(`Workflow updated (id=${workflow.id})`);
60
67
  if (event?.eventFilterJson || event?.triggerType || event?.event) {
68
+ this.logger.log(`Processing EVENT filter for workflow ${workflow.id}`);
61
69
  const eventFilterMaster = {
62
70
  entity_type: 'SFM',
63
71
  name: `Event_Filter_${workflow.id}`,
64
72
  filterDetails: event?.eventFilterJson ?? [],
65
73
  filter_scope: 'RULE',
74
+ organization_id: loggedInUser.organization_id,
75
+ enterprise_id: loggedInUser.enterprise_id,
66
76
  };
67
- const savedEvent = await this.savedFilterService.createEntity(eventFilterMaster, loggedInUser);
77
+ if (workflow.condition_filter_code) {
78
+ this.logger.debug(`Existing event filter found: ${workflow.condition_filter_code}`);
79
+ const existing = await this.savedFilterService.getEntityDataByCode(global_constant_1.ENTITYTYPE_SAVEDFILTERMASTER, workflow.condition_filter_code, loggedInUser);
80
+ if (existing) {
81
+ eventFilterMaster['id'] = existing.id;
82
+ const updatedEvent = await this.savedFilterService.updateEntity(eventFilterMaster, loggedInUser);
83
+ workflow.condition_filter_code = updatedEvent.code;
84
+ this.logger.log(`Updated existing event filter: ${updatedEvent.code}`);
85
+ }
86
+ }
87
+ else {
88
+ const savedEvent = await this.savedFilterService.createEntity(eventFilterMaster, loggedInUser);
89
+ workflow.condition_filter_code = savedEvent.code;
90
+ this.logger.log(`Created new event filter: ${savedEvent.code}`);
91
+ }
68
92
  workflow.trigger_type = event?.triggerType ?? null;
69
93
  workflow.trigger_event = event?.event ?? null;
70
- workflow.condition_filter_code = savedEvent.code;
71
94
  }
72
95
  if (criteria?.criteriaFilterJson?.length) {
96
+ this.logger.log(`Processing CRITERIA filter for workflow ${workflow.id}`);
73
97
  const criteriaFilterMaster = {
74
98
  entity_type: 'SFM',
75
99
  name: `Criteria_Filter_${workflow.id}`,
76
100
  filterDetails: criteria?.criteriaFilterJson ?? [],
77
101
  filter_scope: 'RULE',
102
+ organization_id: loggedInUser.organization_id,
103
+ enterprise_id: loggedInUser.enterprise_id,
78
104
  };
79
- const savedCriteria = await this.savedFilterService.createEntity(criteriaFilterMaster, loggedInUser);
80
- workflow.criteria_filter_code = savedCriteria.code;
105
+ if (workflow.criteria_filter_code) {
106
+ this.logger.debug(`Existing criteria filter found: ${workflow.criteria_filter_code}`);
107
+ const existing = await this.savedFilterService.getEntityDataByCode(global_constant_1.ENTITYTYPE_SAVEDFILTERMASTER, workflow.criteria_filter_code, loggedInUser);
108
+ if (existing) {
109
+ criteriaFilterMaster['id'] = existing.id;
110
+ const updatedCriteria = await this.savedFilterService.updateEntity(criteriaFilterMaster, loggedInUser);
111
+ workflow.criteria_filter_code = updatedCriteria.code;
112
+ this.logger.log(`Updated existing criteria filter: ${updatedCriteria.code}`);
113
+ }
114
+ }
115
+ else {
116
+ const savedCriteria = await this.savedFilterService.createEntity(criteriaFilterMaster, loggedInUser);
117
+ workflow.criteria_filter_code = savedCriteria.code;
118
+ this.logger.log(`Created new criteria filter: ${savedCriteria.code}`);
119
+ }
81
120
  }
82
121
  if (Array.isArray(action) && action.length) {
122
+ this.logger.log(`Processing ${action.length} actions for workflow ${workflow.id}`);
123
+ const existingActions = await this.dataSource
124
+ .getRepository(workflow_automation_action_entity_1.WorkflowAutomationActionEntity)
125
+ .find({
126
+ where: { workflow_automation_id: workflow.id },
127
+ });
128
+ const existingMap = new Map(existingActions.map((a) => [a.entity_method, a]));
83
129
  for (const a of action) {
84
- if (!a?.actionCategory)
130
+ if (!a?.actionCategory) {
131
+ this.logger.warn(`Skipping action without category: ${JSON.stringify(a)}`);
85
132
  continue;
86
- const actionEntity = new workflow_automation_action_entity_1.WorkflowAutomationActionEntity();
87
- actionEntity.entity_type = 'WFAA';
88
- actionEntity.workflow_automation_id = workflow.id;
89
- actionEntity.entity_method = a.actionCategory;
90
- actionEntity.payload = a.actionPayload ?? {};
91
- await super.createEntity(actionEntity, loggedInUser);
133
+ }
134
+ const existing = existingMap.get(a.actionCategory);
135
+ if (existing) {
136
+ existing.payload = a.actionPayload ?? {};
137
+ await this.dataSource
138
+ .getRepository(workflow_automation_action_entity_1.WorkflowAutomationActionEntity)
139
+ .save(existing);
140
+ this.logger.log(`Updated action: ${a.actionCategory}`);
141
+ }
142
+ else {
143
+ const actionEntity = new workflow_automation_action_entity_1.WorkflowAutomationActionEntity();
144
+ actionEntity.entity_type = 'WFAA';
145
+ actionEntity.workflow_automation_id = workflow.id;
146
+ actionEntity.entity_method = a.actionCategory;
147
+ actionEntity.payload = a.actionPayload ?? {};
148
+ await this.dataSource
149
+ .getRepository(workflow_automation_action_entity_1.WorkflowAutomationActionEntity)
150
+ .save(actionEntity);
151
+ this.logger.log(`Created new action: ${a.actionCategory}`);
152
+ }
153
+ }
154
+ const incomingCategories = action.map((a) => a.actionCategory);
155
+ const toDelete = existingActions.filter((a) => !incomingCategories.includes(a.entity_method));
156
+ if (toDelete.length) {
157
+ await this.dataSource
158
+ .getRepository(workflow_automation_action_entity_1.WorkflowAutomationActionEntity)
159
+ .remove(toDelete);
160
+ this.logger.log(`Deleted ${toDelete.length} actions not present in request.`);
92
161
  }
93
162
  }
94
163
  workflow = await super.updateEntity(workflow, loggedInUser);
164
+ this.logger.debug(`Final workflow updated (id=${workflow.id})`);
95
165
  return workflow;
96
166
  }
97
167
  };
98
168
  exports.WorkflowAutomationService = WorkflowAutomationService;
99
- exports.WorkflowAutomationService = WorkflowAutomationService = __decorate([
169
+ exports.WorkflowAutomationService = WorkflowAutomationService = WorkflowAutomationService_1 = __decorate([
100
170
  (0, common_1.Injectable)(),
101
171
  __param(0, (0, typeorm_1.InjectRepository)(workflow_automation_entity_1.WorkflowAutomation)),
102
172
  __param(1, (0, typeorm_1.InjectRepository)(workflow_automation_action_entity_1.WorkflowAutomationActionEntity)),
103
173
  __param(2, (0, common_1.Inject)('SavedFilterService')),
104
174
  __metadata("design:paramtypes", [typeorm_2.Repository,
105
175
  typeorm_2.Repository,
106
- saved_filter_service_1.SavedFilterService])
176
+ saved_filter_service_1.SavedFilterService,
177
+ typeorm_2.DataSource])
107
178
  ], WorkflowAutomationService);
108
179
  //# sourceMappingURL=workflow-automation.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-automation.service.js","sourceRoot":"","sources":["../../../../src/module/workflow-automation/service/workflow-automation.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-automation.service.js","sourceRoot":"","sources":["../../../../src/module/workflow-automation/service/workflow-automation.service.ts"],"names":[],"mappings":"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"}