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.
- package/dist/module/communication/communication.module.js +2 -0
- package/dist/module/communication/communication.module.js.map +1 -1
- package/dist/module/communication/factories/telephone.factory.d.ts +3 -1
- package/dist/module/communication/factories/telephone.factory.js +9 -3
- package/dist/module/communication/factories/telephone.factory.js.map +1 -1
- package/dist/module/communication/service/communication.service.js +1 -0
- package/dist/module/communication/service/communication.service.js.map +1 -1
- package/dist/module/communication/strategies/telephone/ozonetel-voice.strategy.d.ts +1 -0
- package/dist/module/communication/strategies/telephone/ozonetel-voice.strategy.js.map +1 -1
- package/dist/module/communication/strategies/telephone/tubelight-voice.strategy.d.ts +15 -0
- package/dist/module/communication/strategies/telephone/tubelight-voice.strategy.js +104 -0
- package/dist/module/communication/strategies/telephone/tubelight-voice.strategy.js.map +1 -0
- package/dist/module/meta/controller/entity.controller.js +11 -6
- package/dist/module/meta/controller/entity.controller.js.map +1 -1
- package/dist/module/user/service/user.service.d.ts +2 -1
- package/dist/module/user/service/user.service.js +2 -0
- package/dist/module/user/service/user.service.js.map +1 -1
- package/dist/module/workflow/entity/action-data.entity.d.ts +1 -0
- package/dist/module/workflow/entity/action-data.entity.js +4 -0
- package/dist/module/workflow/entity/action-data.entity.js.map +1 -1
- package/dist/module/workflow/entity/action.entity.d.ts +1 -0
- package/dist/module/workflow/entity/action.entity.js +4 -0
- package/dist/module/workflow/entity/action.entity.js.map +1 -1
- package/dist/module/workflow-automation/service/workflow-automation-engine.service.d.ts +1 -1
- package/dist/module/workflow-automation/service/workflow-automation-engine.service.js +13 -5
- package/dist/module/workflow-automation/service/workflow-automation-engine.service.js.map +1 -1
- package/dist/module/workflow-automation/service/workflow-automation.service.d.ts +4 -2
- package/dist/module/workflow-automation/service/workflow-automation.service.js +86 -15
- package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/module/communication/communication.module.ts +2 -0
- package/src/module/communication/factories/telephone.factory.ts +6 -1
- package/src/module/communication/service/communication.service.ts +1 -0
- package/src/module/communication/strategies/telephone/ozonetel-voice.strategy.ts +1 -0
- package/src/module/communication/strategies/telephone/tubelight-voice.strategy.ts +122 -0
- package/src/module/meta/controller/entity.controller.ts +51 -42
- package/src/module/user/service/user.service.ts +2 -1
- package/src/module/workflow/entity/action-data.entity.ts +3 -0
- package/src/module/workflow/entity/action.entity.ts +3 -0
- package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +53 -26
- 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;
|
|
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"}
|
|
@@ -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;
|
|
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:
|
|
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,
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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(
|
|
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;
|
|
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
|
-
|
|
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
|
-
|
|
24
|
-
|
|
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
|
-
|
|
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
|
-
|
|
80
|
-
|
|
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
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
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":"
|
|
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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"}
|