rez_core 2.2.253 → 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 (36) 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/strategies/telephone/tubelight-voice.strategy.d.ts +15 -0
  7. package/dist/module/communication/strategies/telephone/tubelight-voice.strategy.js +104 -0
  8. package/dist/module/communication/strategies/telephone/tubelight-voice.strategy.js.map +1 -0
  9. package/dist/module/meta/controller/entity.controller.js +11 -6
  10. package/dist/module/meta/controller/entity.controller.js.map +1 -1
  11. package/dist/module/user/service/user.service.d.ts +2 -1
  12. package/dist/module/user/service/user.service.js +2 -0
  13. package/dist/module/user/service/user.service.js.map +1 -1
  14. package/dist/module/workflow/entity/action-data.entity.d.ts +1 -0
  15. package/dist/module/workflow/entity/action-data.entity.js +4 -0
  16. package/dist/module/workflow/entity/action-data.entity.js.map +1 -1
  17. package/dist/module/workflow/entity/action.entity.d.ts +1 -0
  18. package/dist/module/workflow/entity/action.entity.js +4 -0
  19. package/dist/module/workflow/entity/action.entity.js.map +1 -1
  20. package/dist/module/workflow-automation/service/workflow-automation-engine.service.d.ts +1 -1
  21. package/dist/module/workflow-automation/service/workflow-automation-engine.service.js +13 -5
  22. package/dist/module/workflow-automation/service/workflow-automation-engine.service.js.map +1 -1
  23. package/dist/module/workflow-automation/service/workflow-automation.service.d.ts +4 -2
  24. package/dist/module/workflow-automation/service/workflow-automation.service.js +86 -15
  25. package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
  26. package/dist/tsconfig.build.tsbuildinfo +1 -1
  27. package/package.json +1 -1
  28. package/src/module/communication/communication.module.ts +2 -0
  29. package/src/module/communication/factories/telephone.factory.ts +6 -1
  30. package/src/module/communication/strategies/telephone/tubelight-voice.strategy.ts +122 -0
  31. package/src/module/meta/controller/entity.controller.ts +51 -42
  32. package/src/module/user/service/user.service.ts +2 -1
  33. package/src/module/workflow/entity/action-data.entity.ts +3 -0
  34. package/src/module/workflow/entity/action.entity.ts +3 -0
  35. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +53 -26
  36. package/src/module/workflow-automation/service/workflow-automation.service.ts +139 -27
@@ -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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"}