rez_core 2.3.1 → 2.3.4
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/app.module.js +2 -0
- package/dist/app.module.js.map +1 -1
- package/dist/module/enterprise/repository/school.repository.js +0 -1
- package/dist/module/enterprise/repository/school.repository.js.map +1 -1
- package/dist/module/filter/repository/saved-filter.repository.js +0 -1
- package/dist/module/filter/repository/saved-filter.repository.js.map +1 -1
- package/dist/module/integration/controller/integration.controller.d.ts +8 -1
- package/dist/module/integration/controller/integration.controller.js +22 -0
- package/dist/module/integration/controller/integration.controller.js.map +1 -1
- package/dist/module/integration/dto/create-config.dto.d.ts +7 -0
- package/dist/module/integration/dto/create-config.dto.js +29 -1
- package/dist/module/integration/dto/create-config.dto.js.map +1 -1
- package/dist/module/integration/factories/sms.factory.d.ts +9 -1
- package/dist/module/integration/factories/sms.factory.js +36 -4
- package/dist/module/integration/factories/sms.factory.js.map +1 -1
- package/dist/module/integration/factories/whatsapp.factory.d.ts +5 -1
- package/dist/module/integration/factories/whatsapp.factory.js +14 -2
- package/dist/module/integration/factories/whatsapp.factory.js.map +1 -1
- package/dist/module/integration/integration.module.js +10 -0
- package/dist/module/integration/integration.module.js.map +1 -1
- package/dist/module/integration/service/integration.service.d.ts +7 -0
- package/dist/module/integration/service/integration.service.js +51 -0
- package/dist/module/integration/service/integration.service.js.map +1 -1
- package/dist/module/integration/strategies/sms/gupshup-sms.strategy.d.ts +9 -0
- package/dist/module/integration/strategies/sms/gupshup-sms.strategy.js +104 -0
- package/dist/module/integration/strategies/sms/gupshup-sms.strategy.js.map +1 -0
- package/dist/module/integration/strategies/sms/msg91-sms.strategy.d.ts +9 -0
- package/dist/module/integration/strategies/sms/msg91-sms.strategy.js +113 -0
- package/dist/module/integration/strategies/sms/msg91-sms.strategy.js.map +1 -0
- package/dist/module/integration/strategies/sms/tubelight-sms.strategy.d.ts +9 -0
- package/dist/module/integration/strategies/sms/tubelight-sms.strategy.js +109 -0
- package/dist/module/integration/strategies/sms/tubelight-sms.strategy.js.map +1 -0
- package/dist/module/integration/strategies/telephone/ozonetel-voice.strategy.d.ts +7 -2
- package/dist/module/integration/strategies/telephone/ozonetel-voice.strategy.js +52 -5
- package/dist/module/integration/strategies/telephone/ozonetel-voice.strategy.js.map +1 -1
- package/dist/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.d.ts +19 -0
- package/dist/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.js +257 -0
- package/dist/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.js.map +1 -0
- package/dist/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.d.ts +22 -0
- package/dist/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.js +295 -0
- package/dist/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.js.map +1 -0
- package/dist/module/layout_preference/service/layout_preference.service.js +0 -2
- package/dist/module/layout_preference/service/layout_preference.service.js.map +1 -1
- package/dist/module/listmaster/service/list-master.service.js +0 -1
- package/dist/module/listmaster/service/list-master.service.js.map +1 -1
- package/dist/module/mapper/controller/field-mapper.controller.d.ts +6 -0
- package/dist/module/mapper/controller/field-mapper.controller.js +45 -0
- package/dist/module/mapper/controller/field-mapper.controller.js.map +1 -0
- package/dist/module/mapper/dto/field-mapper.dto.d.ts +11 -0
- package/dist/module/mapper/dto/field-mapper.dto.js +8 -0
- package/dist/module/mapper/dto/field-mapper.dto.js.map +1 -0
- package/dist/module/mapper/entity/field-lovs.entity.d.ts +7 -0
- package/dist/module/mapper/entity/field-lovs.entity.js +38 -0
- package/dist/module/mapper/entity/field-lovs.entity.js.map +1 -0
- package/dist/module/mapper/entity/field-mapper.entity.d.ts +12 -0
- package/dist/module/mapper/entity/field-mapper.entity.js +58 -0
- package/dist/module/mapper/entity/field-mapper.entity.js.map +1 -0
- package/dist/module/mapper/mapper.module.d.ts +2 -0
- package/dist/module/mapper/mapper.module.js +38 -0
- package/dist/module/mapper/mapper.module.js.map +1 -0
- package/dist/module/mapper/repository/field-lovs.repository.d.ts +8 -0
- package/dist/module/mapper/repository/field-lovs.repository.js +41 -0
- package/dist/module/mapper/repository/field-lovs.repository.js.map +1 -0
- package/dist/module/mapper/repository/field-mapper.repository.d.ts +9 -0
- package/dist/module/mapper/repository/field-mapper.repository.js +42 -0
- package/dist/module/mapper/repository/field-mapper.repository.js.map +1 -0
- package/dist/module/mapper/service/field-mapper.service.d.ts +16 -0
- package/dist/module/mapper/service/field-mapper.service.js +92 -0
- package/dist/module/mapper/service/field-mapper.service.js.map +1 -0
- package/dist/module/master/service/master.service.js +0 -2
- package/dist/module/master/service/master.service.js.map +1 -1
- package/dist/module/meta/repository/entity-table.repository.js +0 -1
- package/dist/module/meta/repository/entity-table.repository.js.map +1 -1
- package/dist/module/meta/service/entity-dynamic.service.js +0 -1
- package/dist/module/meta/service/entity-dynamic.service.js.map +1 -1
- package/dist/module/meta/service/entity-service-impl.service.js +0 -2
- package/dist/module/meta/service/entity-service-impl.service.js.map +1 -1
- package/dist/module/meta/service/entity-table.service.js +0 -2
- package/dist/module/meta/service/entity-table.service.js.map +1 -1
- package/dist/module/meta/service/field-group.service.js +0 -1
- package/dist/module/meta/service/field-group.service.js.map +1 -1
- package/dist/module/module/service/module-access.service.js +0 -6
- package/dist/module/module/service/module-access.service.js.map +1 -1
- package/dist/module/notification/service/email.service.js +0 -1
- package/dist/module/notification/service/email.service.js.map +1 -1
- package/dist/module/user/service/login.service.js +0 -1
- package/dist/module/user/service/login.service.js.map +1 -1
- package/dist/module/workflow/entity/action.entity.d.ts +2 -0
- package/dist/module/workflow/entity/action.entity.js +8 -0
- package/dist/module/workflow/entity/action.entity.js.map +1 -1
- package/dist/module/workflow/repository/stage.repository.js +0 -1
- package/dist/module/workflow/repository/stage.repository.js.map +1 -1
- package/dist/module/workflow/service/action.service.js +0 -1
- package/dist/module/workflow/service/action.service.js.map +1 -1
- package/dist/module/workflow/service/comm-template.service.js +0 -1
- package/dist/module/workflow/service/comm-template.service.js.map +1 -1
- package/dist/module/workflow/service/populate-workflow.service.js +0 -5
- package/dist/module/workflow/service/populate-workflow.service.js.map +1 -1
- package/dist/module/workflow/service/task.service.js +0 -1
- package/dist/module/workflow/service/task.service.js.map +1 -1
- package/dist/module/workflow/service/workflow-meta.service.js +0 -2
- package/dist/module/workflow/service/workflow-meta.service.js.map +1 -1
- package/dist/module/workflow-automation/service/workflow-automation-engine.service.js +0 -1
- package/dist/module/workflow-automation/service/workflow-automation-engine.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/docs/modules/integration.md +55 -1
- package/package.json +1 -1
- package/src/app.module.ts +2 -0
- package/src/module/enterprise/repository/school.repository.ts +0 -1
- package/src/module/filter/repository/saved-filter.repository.ts +0 -1
- package/src/module/integration/controller/integration.controller.ts +24 -0
- package/src/module/integration/dto/create-config.dto.ts +22 -0
- package/src/module/integration/factories/sms.factory.ts +39 -6
- package/src/module/integration/factories/whatsapp.factory.ts +10 -0
- package/src/module/integration/integration.module.ts +14 -0
- package/src/module/integration/service/integration.service.ts +107 -0
- package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -0
- package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -0
- package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -0
- package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +80 -7
- package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +360 -0
- package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +419 -0
- package/src/module/layout_preference/service/layout_preference.service.ts +0 -2
- package/src/module/listmaster/service/list-master.service.ts +1 -10
- package/src/module/mapper/controller/field-mapper.controller.ts +19 -0
- package/src/module/mapper/dto/field-mapper.dto.ts +14 -0
- package/src/module/mapper/entity/field-lovs.entity.ts +21 -0
- package/src/module/mapper/entity/field-mapper.entity.ts +36 -0
- package/src/module/mapper/mapper.module.ts +26 -0
- package/src/module/mapper/repository/field-lovs.repository.ts +22 -0
- package/src/module/mapper/repository/field-mapper.repository.ts +27 -0
- package/src/module/mapper/service/field-mapper.service.ts +91 -0
- package/src/module/master/service/master.service.ts +0 -2
- package/src/module/meta/repository/entity-table.repository.ts +0 -1
- package/src/module/meta/service/entity-dynamic.service.ts +1 -5
- package/src/module/meta/service/entity-service-impl.service.ts +0 -4
- package/src/module/meta/service/entity-table.service.ts +0 -2
- package/src/module/meta/service/field-group.service.ts +0 -1
- package/src/module/module/service/module-access.service.ts +0 -13
- package/src/module/notification/service/email.service.ts +0 -1
- package/src/module/user/service/login.service.ts +0 -1
- package/src/module/workflow/entity/action.entity.ts +6 -0
- package/src/module/workflow/repository/stage.repository.ts +1 -2
- package/src/module/workflow/service/action.service.ts +0 -1
- package/src/module/workflow/service/comm-template.service.ts +0 -1
- package/src/module/workflow/service/populate-workflow.service.ts +2 -12
- package/src/module/workflow/service/task.service.ts +0 -1
- package/src/module/workflow/service/workflow-meta.service.ts +1 -4
- package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +0 -1
- package/src/resources/dev.properties.yaml +1 -1
- package/.vscode/extensions.json +0 -5
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@nestjs/common';
|
|
2
|
+
import { FieldMapperRepository } from '../repository/field-mapper.repository';
|
|
3
|
+
import { FieldMapperDto } from '../dto/field-mapper.dto';
|
|
4
|
+
import { EntityServiceImpl } from '../../meta/service/entity-service-impl.service';
|
|
5
|
+
import { UserData } from '../../user/entity/user.entity';
|
|
6
|
+
import { SavedFilterService } from '../../filter/service/saved-filter.service';
|
|
7
|
+
import { FieldLovsRepository } from '../repository/field-lovs.repository';
|
|
8
|
+
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class FieldMapperService extends EntityServiceImpl {
|
|
11
|
+
constructor(
|
|
12
|
+
private readonly fieldMapperRepository: FieldMapperRepository,
|
|
13
|
+
@Inject('SavedFilterService') private readonly savedFilterService: SavedFilterService,
|
|
14
|
+
private readonly fieldLovsRepository: FieldLovsRepository,
|
|
15
|
+
) {
|
|
16
|
+
super();
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async createEntity(dto: FieldMapperDto, loggedInUser: UserData) {
|
|
20
|
+
if (dto.filter_json) {
|
|
21
|
+
const savedFilter = await this.savedFilterService.createEntity(dto.filter_json, loggedInUser);
|
|
22
|
+
dto.filter_code = savedFilter.code;
|
|
23
|
+
}
|
|
24
|
+
return super.createEntity(dto, loggedInUser);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async updateEntity(dto: FieldMapperDto, loggedInUser: UserData) {
|
|
28
|
+
if (dto.filter_json) {
|
|
29
|
+
const savedFilter = await this.savedFilterService.createEntity(dto.filter_json, loggedInUser);
|
|
30
|
+
dto.filter_code = savedFilter.code;
|
|
31
|
+
}
|
|
32
|
+
return super.updateEntity(dto, loggedInUser);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async createFieldMappers(dtos: FieldMapperDto[]) {
|
|
36
|
+
return await this.fieldMapperRepository.saveBulk(dtos);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async resolveData(
|
|
40
|
+
integration_component: string,
|
|
41
|
+
parent_type: string,
|
|
42
|
+
parent_id: number,
|
|
43
|
+
userData: UserData,
|
|
44
|
+
) {
|
|
45
|
+
const fieldMappers =
|
|
46
|
+
await this.fieldMapperRepository.findByIntegrationComponentAndDestinationEntityType(
|
|
47
|
+
integration_component,
|
|
48
|
+
parent_type,
|
|
49
|
+
);
|
|
50
|
+
const result: Record<string, any> = {};
|
|
51
|
+
|
|
52
|
+
const inMemory: Record<string, Record<string, any>> = {};
|
|
53
|
+
|
|
54
|
+
for (const field of fieldMappers) {
|
|
55
|
+
const entityType = field.mapped_entity_type ? field.mapped_entity_type : field.destination_entity_type;
|
|
56
|
+
const filterCode = field.filter_code || 'default';
|
|
57
|
+
if (!inMemory[entityType]) {
|
|
58
|
+
inMemory[entityType] = {};
|
|
59
|
+
}
|
|
60
|
+
if (!inMemory[entityType][filterCode] && !field.mapped_entity_type) {
|
|
61
|
+
inMemory[entityType][filterCode] = await super.getResolvedEntityData(
|
|
62
|
+
entityType,
|
|
63
|
+
parent_id,
|
|
64
|
+
userData,
|
|
65
|
+
);
|
|
66
|
+
} else {
|
|
67
|
+
// TODO: Handle mapped_entity_type with filterCode
|
|
68
|
+
inMemory[entityType][filterCode] = {};
|
|
69
|
+
}
|
|
70
|
+
const entityData = inMemory[entityType][filterCode];
|
|
71
|
+
if (entityData) {
|
|
72
|
+
let value = entityData[field.destination_attribute];
|
|
73
|
+
if (field.is_lov_present) {
|
|
74
|
+
if (field.action === 'LOOKUP') {
|
|
75
|
+
let fieldLovMapper = await this.fieldLovsRepository.findByMapperFieldIdAndDestinationAttributeValue(field.id, value);
|
|
76
|
+
if (fieldLovMapper) {
|
|
77
|
+
value = fieldLovMapper.source_attribute_value;
|
|
78
|
+
}
|
|
79
|
+
} else {
|
|
80
|
+
let fieldLovMapper = await this.fieldLovsRepository.findByMapperFieldIdAndSourceAttributeValue(field.id, value);
|
|
81
|
+
if (fieldLovMapper) {
|
|
82
|
+
value = fieldLovMapper.destination_attribute_value;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
result[field.source_attribute] = value;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
@@ -229,12 +229,10 @@ export class MasterService {
|
|
|
229
229
|
loggedInUser,
|
|
230
230
|
);
|
|
231
231
|
|
|
232
|
-
console.log(attributes, 'attributes');
|
|
233
232
|
const uniqueFields = attributes
|
|
234
233
|
.filter((attr) => attr.is_unique)
|
|
235
234
|
.map((attr) => attr.attribute_key);
|
|
236
235
|
|
|
237
|
-
console.log(uniqueFields, 'uniqueFields');
|
|
238
236
|
|
|
239
237
|
if (uniqueFields.length === 0) {
|
|
240
238
|
throw new Error(`No unique fields found for entityType: ${entityType}`);
|
|
@@ -523,11 +523,7 @@ export class EntityDynamicService {
|
|
|
523
523
|
row[attr.attribute_key] !== undefined
|
|
524
524
|
) {
|
|
525
525
|
// fetch media data
|
|
526
|
-
|
|
527
|
-
'Fetching media for',
|
|
528
|
-
attr.attribute_key,
|
|
529
|
-
row[attr.attribute_key],
|
|
530
|
-
);
|
|
526
|
+
|
|
531
527
|
|
|
532
528
|
row[attr.attribute_key] =
|
|
533
529
|
row[attr.attribute_key] != null
|
|
@@ -108,10 +108,6 @@ export class EntityServiceImpl implements EntityService<BaseEntity> {
|
|
|
108
108
|
[STATUS_ACTIVE, loggedInUser?.organization_id],
|
|
109
109
|
);
|
|
110
110
|
|
|
111
|
-
console.log('Status List:', statusList); // Debug log
|
|
112
|
-
console.log(
|
|
113
|
-
`status_code,${STATUS_ACTIVE},statusList, ${loggedInUser?.organization_id}`,
|
|
114
|
-
); // Debug log
|
|
115
111
|
|
|
116
112
|
entityData.created_date = new Date();
|
|
117
113
|
if (loggedInUser) {
|
|
@@ -79,14 +79,12 @@ export class EntityTableService {
|
|
|
79
79
|
displayType: string,
|
|
80
80
|
loggedInUser: any,
|
|
81
81
|
) {
|
|
82
|
-
console.log(entityType, listType, displayType, loggedInUser);
|
|
83
82
|
const entityTable = await this.findByEntityTypeAndListTypeAndDisplayType(
|
|
84
83
|
entityType,
|
|
85
84
|
listType,
|
|
86
85
|
displayType,
|
|
87
86
|
loggedInUser?.organization_id,
|
|
88
87
|
);
|
|
89
|
-
console.log(entityTable, 'entityTable');
|
|
90
88
|
const entityTableDto = entityTable as EntityTableDto;
|
|
91
89
|
if (entityTable) {
|
|
92
90
|
entityTableDto.column_list =
|
|
@@ -53,7 +53,6 @@ export class FieldGroupService extends EntityServiceImpl {
|
|
|
53
53
|
|
|
54
54
|
if (layoutJson?.form?.children && Array.isArray(layoutJson.form.children)) {
|
|
55
55
|
const firstChild = layoutJson.form.children[0];
|
|
56
|
-
console.log('First Child:', firstChild);
|
|
57
56
|
|
|
58
57
|
if (firstChild.type === 'wizard' && Array.isArray(firstChild.steps)) {
|
|
59
58
|
console.log('Wizard Steps:', firstChild.steps);
|
|
@@ -149,14 +149,6 @@ export class ModuleAccessService {
|
|
|
149
149
|
level_id: number;
|
|
150
150
|
organization_id: number;
|
|
151
151
|
}) {
|
|
152
|
-
console.log(
|
|
153
|
-
'step 1',
|
|
154
|
-
userId,
|
|
155
|
-
appcode,
|
|
156
|
-
level_type,
|
|
157
|
-
level_id,
|
|
158
|
-
organization_id,
|
|
159
|
-
);
|
|
160
152
|
|
|
161
153
|
// Step 1: Resolve roles
|
|
162
154
|
const roleCodes = await this.menuRepository.resolveUserRoles(
|
|
@@ -166,21 +158,18 @@ export class ModuleAccessService {
|
|
|
166
158
|
level_id,
|
|
167
159
|
);
|
|
168
160
|
|
|
169
|
-
console.log(roleCodes, 'roleCodes');
|
|
170
161
|
|
|
171
162
|
if (!roleCodes || roleCodes.length === 0) {
|
|
172
163
|
return [];
|
|
173
164
|
}
|
|
174
165
|
|
|
175
166
|
const roleIds = roleCodes.map(Number);
|
|
176
|
-
console.log('step 2', roleIds);
|
|
177
167
|
// Step 2: Get full permissions
|
|
178
168
|
const allPermissions =
|
|
179
169
|
await this.moduleAccessRepository.getModuleAccessByRoles(
|
|
180
170
|
roleIds,
|
|
181
171
|
appcode,
|
|
182
172
|
);
|
|
183
|
-
console.log('step 2', allPermissions);
|
|
184
173
|
|
|
185
174
|
// Step 3: If level_type is SCH, check school status using raw query
|
|
186
175
|
if (level_type === 'SCH') {
|
|
@@ -190,7 +179,6 @@ export class ModuleAccessService {
|
|
|
190
179
|
);
|
|
191
180
|
|
|
192
181
|
const school = result?.[0];
|
|
193
|
-
console.log('step 3', school);
|
|
194
182
|
|
|
195
183
|
const resolveStatus = await this.listMasterService.getResolvedListCode(
|
|
196
184
|
STATUS_INACTIVE,
|
|
@@ -202,7 +190,6 @@ export class ModuleAccessService {
|
|
|
202
190
|
return allPermissions.filter((perm) => perm.action === 'VIEW');
|
|
203
191
|
}
|
|
204
192
|
}
|
|
205
|
-
console.log('step 4', allPermissions);
|
|
206
193
|
// Step 4: Return all permissions normally
|
|
207
194
|
return allPermissions;
|
|
208
195
|
}
|
|
@@ -41,4 +41,10 @@ export class ActionEntity extends BaseEntity {
|
|
|
41
41
|
|
|
42
42
|
@Column({ type: 'int', nullable: true })
|
|
43
43
|
dependent_action_id: number;
|
|
44
|
+
|
|
45
|
+
@Column({ type: 'varchar', nullable: true })
|
|
46
|
+
mode: string;
|
|
47
|
+
|
|
48
|
+
@Column({ type: 'varchar', nullable: true })
|
|
49
|
+
template: string;
|
|
44
50
|
}
|
|
@@ -107,8 +107,7 @@ export class StageRepository {
|
|
|
107
107
|
// [stageGroup.workflow_id, organization_id],
|
|
108
108
|
// );
|
|
109
109
|
|
|
110
|
-
|
|
111
|
-
// console.log(rows2, '-----------INNER JOIN----------');
|
|
110
|
+
|
|
112
111
|
|
|
113
112
|
if (!rows || rows.length === 0) {
|
|
114
113
|
return [];
|
|
@@ -122,7 +122,6 @@ export class ActionService extends EntityServiceImpl {
|
|
|
122
122
|
entityData: BaseEntity,
|
|
123
123
|
loggedInUser: UserData,
|
|
124
124
|
): Promise<any> {
|
|
125
|
-
console.log('entityData', entityData);
|
|
126
125
|
|
|
127
126
|
// Extract template from entityData, keep the rest for ActionEntity
|
|
128
127
|
const { template, stage_id, form, ...actionData } =
|
|
@@ -40,7 +40,6 @@ export class CommTemplateService extends EntityServiceImpl {
|
|
|
40
40
|
async updateEntity(entityData: any, loggedInUser: UserData): Promise<any> {
|
|
41
41
|
const { attachments, ...templateData } = entityData;
|
|
42
42
|
|
|
43
|
-
console.log('update for template hit', entityData, loggedInUser);
|
|
44
43
|
|
|
45
44
|
if (
|
|
46
45
|
loggedInUser.level_type === 'SCH' &&
|
|
@@ -253,9 +253,7 @@ export class PopulateWorkflowService extends EntityServiceImpl {
|
|
|
253
253
|
actions = [];
|
|
254
254
|
}
|
|
255
255
|
|
|
256
|
-
|
|
257
|
-
`Found ${actions.length} actions for stage ${id} in workflow ${originalWorkflowId}`,
|
|
258
|
-
);
|
|
256
|
+
|
|
259
257
|
|
|
260
258
|
// === 4. Action mapping — point to stage, stageGroup, workflow correctly
|
|
261
259
|
for (const row of actions as any[]) {
|
|
@@ -275,20 +273,12 @@ export class PopulateWorkflowService extends EntityServiceImpl {
|
|
|
275
273
|
[organization_id],
|
|
276
274
|
);
|
|
277
275
|
|
|
278
|
-
|
|
279
|
-
`Populating action for stage ${newStage.id} in workflow ${newWorkflowId}`,
|
|
280
|
-
);
|
|
281
|
-
|
|
282
|
-
console.log(`Old is_mandatory code: ${oldIsMandatory?.code}`);
|
|
283
|
-
console.log(`New is_mandatory list:`, newIsMandatoryList);
|
|
284
|
-
|
|
276
|
+
|
|
285
277
|
// Step 3: Find the matching new item with the same code
|
|
286
278
|
const matchedNewMandatory = newIsMandatoryList.find(
|
|
287
279
|
(item) => item.code === oldIsMandatory?.code,
|
|
288
280
|
);
|
|
289
281
|
|
|
290
|
-
console.log(`Matched new mandatory item:`, matchedNewMandatory);
|
|
291
|
-
|
|
292
282
|
const formActionCategory = await this.dataSource.query(
|
|
293
283
|
`SELECT id FROM cr_wf_action_category WHERE id = ? and is_form = 1`,
|
|
294
284
|
[row.action_category],
|
|
@@ -304,7 +304,6 @@ export class WorkflowMetaService extends EntityServiceImpl {
|
|
|
304
304
|
actionCategory[0]?.code == 'OWAS' &&
|
|
305
305
|
assignmentType[0]?.value == 'round_robin'
|
|
306
306
|
) {
|
|
307
|
-
console.log('Auto-assigning owner based on round-robin assignment type');
|
|
308
307
|
await this.assignLead(
|
|
309
308
|
loggedInUser,
|
|
310
309
|
mapped_entity_id,
|
|
@@ -537,9 +536,7 @@ export class WorkflowMetaService extends EntityServiceImpl {
|
|
|
537
536
|
|
|
538
537
|
// if it has only one action then move next stage
|
|
539
538
|
if (actions.length == 1) {
|
|
540
|
-
|
|
541
|
-
'Only one action present and it is owner assignment. Moving to next stage.',
|
|
542
|
-
);
|
|
539
|
+
|
|
543
540
|
await this.moveToNextStage(
|
|
544
541
|
mapped_entity_type,
|
|
545
542
|
mapped_entity_id,
|
|
@@ -90,7 +90,6 @@ export class WorkflowAutomationEngineService {
|
|
|
90
90
|
) {
|
|
91
91
|
// Load actions for this rule from DB
|
|
92
92
|
const actions = await this.wfService.getActionsForRule(workflow_automation_id);
|
|
93
|
-
console.log(actions, 'actions found');
|
|
94
93
|
|
|
95
94
|
for (const action of actions) {
|
|
96
95
|
const impl = this.actions.get(String(action.action_decorator)); // action_code = registered name
|