rez_core 7.0.1 → 7.0.2
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/master/service/poupulate-meta.service.d.ts +9 -0
- package/dist/module/master/service/poupulate-meta.service.js +187 -0
- package/dist/module/master/service/poupulate-meta.service.js.map +1 -0
- package/dist/module/meta/entity.module.js +3 -0
- package/dist/module/meta/entity.module.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/module/master/service/poupulate-meta.service.ts +210 -0
- package/src/module/meta/entity.module.ts +3 -0
package/package.json
CHANGED
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { ReflectionHelper } from 'src/utils/service/reflection-helper.service';
|
|
3
|
+
|
|
4
|
+
@Injectable()
|
|
5
|
+
export class PopulateMetaService {
|
|
6
|
+
constructor(
|
|
7
|
+
private readonly reflectionHelper: ReflectionHelper,
|
|
8
|
+
) {
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async populateMetaData(enterprise_id: number, organization_id: number) {
|
|
12
|
+
const metadataTables = [
|
|
13
|
+
'frm_entity_master',
|
|
14
|
+
'frm_entity_attribute',
|
|
15
|
+
'frm_entity_view',
|
|
16
|
+
'frm_entity_relation',
|
|
17
|
+
];
|
|
18
|
+
|
|
19
|
+
const listMasterItemsRepo =
|
|
20
|
+
this.reflectionHelper.getRepoService('ListMasterItems');
|
|
21
|
+
const viewMasterRepo = this.reflectionHelper.getRepoService('ViewMaster');
|
|
22
|
+
const relationRepo = this.reflectionHelper.getRepoService('EntityRelation');
|
|
23
|
+
const attributeMasterRepo =
|
|
24
|
+
this.reflectionHelper.getRepoService('AttributeMaster');
|
|
25
|
+
const entityMasterRepo =
|
|
26
|
+
this.reflectionHelper.getRepoService('EntityMaster');
|
|
27
|
+
|
|
28
|
+
if (!listMasterItemsRepo) return;
|
|
29
|
+
|
|
30
|
+
const getStatus = (await listMasterItemsRepo.find({
|
|
31
|
+
where: { enterprise_id: enterprise_id, code: 'STATUS_ACTIVE' },
|
|
32
|
+
})) as any[];
|
|
33
|
+
|
|
34
|
+
let status: any;
|
|
35
|
+
|
|
36
|
+
if (getStatus && getStatus.length > 0) {
|
|
37
|
+
status = getStatus[0].id;
|
|
38
|
+
} else {
|
|
39
|
+
status = 'ACTIVE';
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
let oneToManyId = await listMasterItemsRepo?.find({
|
|
43
|
+
where: { value: 'ONE_TO_MANY', enterprise_id: enterprise_id },
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
let oneToOneId = await listMasterItemsRepo?.find({
|
|
47
|
+
where: { value: 'ONE_TO_ONE', enterprise_id: enterprise_id },
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
// Step 1: Insert basic metadata tables
|
|
51
|
+
for (const table of metadataTables) {
|
|
52
|
+
let transformedData;
|
|
53
|
+
|
|
54
|
+
let transformRepo;
|
|
55
|
+
|
|
56
|
+
if (table === 'frm_entity_master') {
|
|
57
|
+
transformRepo = entityMasterRepo;
|
|
58
|
+
|
|
59
|
+
const factoryData = await transformRepo?.find({
|
|
60
|
+
where: {
|
|
61
|
+
enterprise_id: 1,
|
|
62
|
+
level_type: 'ORG',
|
|
63
|
+
level_id: 1,
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
transformedData = factoryData.map(
|
|
68
|
+
({ id, created_date, modified_date, ...rest }) => ({
|
|
69
|
+
...rest,
|
|
70
|
+
enterprise_id,
|
|
71
|
+
level_type: 'ORG',
|
|
72
|
+
level_id: organization_id,
|
|
73
|
+
is_workflow: rest.is_workflow == 1 ? true : false,
|
|
74
|
+
status: status,
|
|
75
|
+
}),
|
|
76
|
+
);
|
|
77
|
+
} else if (table === 'frm_entity_attribute') {
|
|
78
|
+
transformRepo = attributeMasterRepo;
|
|
79
|
+
const factoryData = await transformRepo?.find({
|
|
80
|
+
where: {
|
|
81
|
+
enterprise_id: 1,
|
|
82
|
+
level_type: 'ORG',
|
|
83
|
+
level_id: 1,
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
transformedData = factoryData.map(
|
|
88
|
+
({ id, created_date, modified_date, ...rest }) => ({
|
|
89
|
+
...rest,
|
|
90
|
+
level_type: 'ORG',
|
|
91
|
+
level_id: organization_id,
|
|
92
|
+
enterprise_id,
|
|
93
|
+
// is_unique: rest.is_unique == 1 ? true : false,
|
|
94
|
+
// required: rest.required == 1 ? true : false,
|
|
95
|
+
// is_hidden: rest.is_hidden == 1 ? true : false,
|
|
96
|
+
status: status,
|
|
97
|
+
}),
|
|
98
|
+
);
|
|
99
|
+
} else if (table === 'frm_entity_relation') {
|
|
100
|
+
if (!oneToManyId || !oneToOneId) continue;
|
|
101
|
+
transformRepo = relationRepo;
|
|
102
|
+
const factoryData = await transformRepo?.find({
|
|
103
|
+
where: {
|
|
104
|
+
enterprise_id: 1,
|
|
105
|
+
level_type: 'ORG',
|
|
106
|
+
level_id: 1,
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
transformedData = factoryData.map(
|
|
110
|
+
({ id, created_date, modified_date, ...rest }) => ({
|
|
111
|
+
...rest,
|
|
112
|
+
level_type: 'ORG',
|
|
113
|
+
level_id: organization_id,
|
|
114
|
+
status: status,
|
|
115
|
+
enterprise_id,
|
|
116
|
+
relation_id:
|
|
117
|
+
rest.relation_type == 'ONE_TO_ONE'
|
|
118
|
+
? oneToOneId[0].id
|
|
119
|
+
: oneToManyId[0].id,
|
|
120
|
+
}),
|
|
121
|
+
);
|
|
122
|
+
} else if (table === 'frm_entity_view') {
|
|
123
|
+
transformRepo = viewMasterRepo;
|
|
124
|
+
const factoryData = await transformRepo?.find({
|
|
125
|
+
where: {
|
|
126
|
+
enterprise_id: 1,
|
|
127
|
+
level_type: 'ORG',
|
|
128
|
+
level_id: 1,
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
transformedData = factoryData.map(
|
|
132
|
+
({ id, created_date, modified_date, ...rest }) => ({
|
|
133
|
+
...rest,
|
|
134
|
+
enterprise_id,
|
|
135
|
+
level_type: 'ORG',
|
|
136
|
+
level_id: organization_id,
|
|
137
|
+
status: status,
|
|
138
|
+
}),
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
await transformRepo?.save(transformedData);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// table population for entity tables and entity table columns
|
|
146
|
+
|
|
147
|
+
const entityTableRepo = this.reflectionHelper.getRepoService('EntityTable');
|
|
148
|
+
const entityTableColumnRepo =
|
|
149
|
+
this.reflectionHelper.getRepoService('EntityTableColumn');
|
|
150
|
+
|
|
151
|
+
if (!entityTableRepo || !entityTableColumnRepo) return;
|
|
152
|
+
|
|
153
|
+
const entityTables = await entityTableRepo.find({
|
|
154
|
+
where: {
|
|
155
|
+
enterprise_id: 1,
|
|
156
|
+
level_type: 'ORG',
|
|
157
|
+
level_id: 1,
|
|
158
|
+
},
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
for (let entityTable of entityTables) {
|
|
162
|
+
const { id, mapped_entity_type, display_type, ...rest } = entityTable;
|
|
163
|
+
entityTable = {
|
|
164
|
+
...rest,
|
|
165
|
+
mapped_entity_type: mapped_entity_type,
|
|
166
|
+
level_type: 'ORG',
|
|
167
|
+
level_id: organization_id,
|
|
168
|
+
enterprise_id,
|
|
169
|
+
display_type: display_type,
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
const insertResult = await entityTableRepo.save(entityTable);
|
|
173
|
+
|
|
174
|
+
const newId = insertResult.id;
|
|
175
|
+
|
|
176
|
+
const entityTableColumns = await entityTableColumnRepo.find({
|
|
177
|
+
where: {
|
|
178
|
+
enterprise_id: 1,
|
|
179
|
+
level_type: 'ORG',
|
|
180
|
+
level_id: 1,
|
|
181
|
+
mapped_entity_type: mapped_entity_type,
|
|
182
|
+
display_type: display_type,
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
let tableCloumnArray = [] as any[];
|
|
187
|
+
|
|
188
|
+
for (const column of entityTableColumns) {
|
|
189
|
+
const { id, created_date, modified_date, ...columnRest } = column;
|
|
190
|
+
const newColumn = {
|
|
191
|
+
...columnRest,
|
|
192
|
+
parent_id: newId,
|
|
193
|
+
level_type: 'ORG',
|
|
194
|
+
level_id: organization_id,
|
|
195
|
+
enterprise_id,
|
|
196
|
+
mapped_entity_type: mapped_entity_type,
|
|
197
|
+
display_type: display_type,
|
|
198
|
+
};
|
|
199
|
+
tableCloumnArray.push(newColumn);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
await entityTableColumnRepo.save(tableCloumnArray);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
return {
|
|
206
|
+
message: 'Metadata populated successfully',
|
|
207
|
+
status: 'success',
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
}
|
|
@@ -56,6 +56,7 @@ import { EntityUpdateService } from './service/entity-attribute-update.service';
|
|
|
56
56
|
import { EntityUpdateRepository } from './repository/entity-attribute-update.repository';
|
|
57
57
|
import { EntityRelationRepository } from './repository/entity-relation.repository';
|
|
58
58
|
import { EAVModule } from '../eav/eav.module';
|
|
59
|
+
import { PopulateMetaService } from '../master/service/poupulate-meta.service';
|
|
59
60
|
|
|
60
61
|
@Module({
|
|
61
62
|
imports: [
|
|
@@ -111,6 +112,7 @@ import { EAVModule } from '../eav/eav.module';
|
|
|
111
112
|
ResolverService,
|
|
112
113
|
EntityMasterRepository,
|
|
113
114
|
EntityRelationRepository,
|
|
115
|
+
PopulateMetaService
|
|
114
116
|
],
|
|
115
117
|
exports: [
|
|
116
118
|
'EntityMasterService',
|
|
@@ -129,6 +131,7 @@ import { EAVModule } from '../eav/eav.module';
|
|
|
129
131
|
'EntityDynamicService',
|
|
130
132
|
'CommonService',
|
|
131
133
|
'EntityRelationService',
|
|
134
|
+
PopulateMetaService
|
|
132
135
|
],
|
|
133
136
|
controllers: [
|
|
134
137
|
EntityController,
|