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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rez_core",
3
- "version": "7.0.1",
3
+ "version": "7.0.2",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "private": false,
@@ -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,