rez_core 2.1.47 → 2.1.48

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": "2.1.47",
3
+ "version": "2.1.48",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "private": false,
@@ -1,6 +1,6 @@
1
- import { ENTITYTYPE_SAVEDFILTERDETAIL } from "src/constant/global.constant";
2
- import { BaseEntity } from "src/module/meta/entity/base-entity.entity";
3
- import { Column, Entity } from "typeorm";
1
+ import { ENTITYTYPE_SAVEDFILTERDETAIL } from 'src/constant/global.constant';
2
+ import { BaseEntity } from 'src/module/meta/entity/base-entity.entity';
3
+ import { Column, Entity } from 'typeorm';
4
4
 
5
5
  @Entity({ name: 'cr_saved_filter_detail' })
6
6
  export class SavedFilterDetail extends BaseEntity {
@@ -20,4 +20,7 @@ export class SavedFilterDetail extends BaseEntity {
20
20
 
21
21
  @Column()
22
22
  filter_value: string;
23
+
24
+ @Column({ nullable: true })
25
+ data_type: string;
23
26
  }
@@ -91,7 +91,7 @@ export class SavedFilterRepositoryService {
91
91
  {
92
92
  filter_attribute: string;
93
93
  filter_operator: string;
94
- filter_value: string;
94
+ filter_value: string | string[];
95
95
  }[]
96
96
  > {
97
97
  const saveFilterMasterData = await this.savedFilterMasterRepo.findOne({
@@ -107,7 +107,14 @@ export class SavedFilterRepositoryService {
107
107
  return filterDetails.map((detail) => ({
108
108
  filter_attribute: detail.filter_attribute,
109
109
  filter_operator: detail.filter_operator,
110
- filter_value: detail.filter_value,
110
+ filter_value:
111
+ detail.data_type === 'multiselect'
112
+ ? detail.filter_value?.trim() === ''
113
+ ? []
114
+ : detail.filter_value.split(',')
115
+ : detail.filter_value?.trim() === ''
116
+ ? []
117
+ : detail.filter_value,
111
118
  }));
112
119
  }
113
120
  }
@@ -121,7 +121,7 @@ export class FilterService {
121
121
  {} as Record<string, any>,
122
122
  );
123
123
 
124
- // Get and parse filters
124
+ // Get and parse saved filters
125
125
  const savedFilters = await this.getSavedFilters(savedFilterCode);
126
126
  const baseFilters = [
127
127
  ...(quickFilter || []).filter((f) => f.filter_value !== ''),
@@ -129,8 +129,10 @@ export class FilterService {
129
129
  ...(attributeFilter || []).filter((f) => f.filter_value !== ''),
130
130
  ];
131
131
 
132
+ // Build where clauses
132
133
  const baseWhere = this.buildWhereClauses(baseFilters, attributeMetaMap);
133
134
 
135
+ // check level_id and level_type
134
136
  if (level_type && level_id) {
135
137
  baseWhere.push({
136
138
  query: 'e.level_type = :level_type AND e.level_id = :level_id',
@@ -148,10 +150,11 @@ export class FilterService {
148
150
  });
149
151
  }
150
152
 
153
+ // layout preference query
151
154
  const layoutPreference = await this.dataSource.query(
152
155
  `SELECT layout_json
153
- FROM cr_layout_preference
154
- WHERE user_id = ? AND mapped_entity_type = ?`,
156
+ FROM cr_layout_preference
157
+ WHERE user_id = ? AND mapped_entity_type = ?`,
155
158
  [user_id, entity_type],
156
159
  );
157
160
 
@@ -197,7 +200,7 @@ export class FilterService {
197
200
  (tab) => tab.tab_value.toLowerCase() !== 'all',
198
201
  );
199
202
 
200
- // 🔽 SORTING LOGIC
203
+ // SORTING LOGIC
201
204
  if (layout.sorting === 'asc') {
202
205
  filteredTabs.sort((a, b) =>
203
206
  a.tab_value.toLowerCase().localeCompare(b.tab_value.toLowerCase()),
@@ -6,6 +6,7 @@ import { SavedFilterMaster } from '../entity/saved-filter-master.entity';
6
6
  import { SavedFilterDetail } from '../entity/saved-filter-detail.entity';
7
7
  import { ENTITYTYPE_SAVEDFILTERMASTER } from 'src/constant/global.constant';
8
8
  import { SavedFilterRepositoryService } from '../repository/saved-filter.repository';
9
+ import { isArray } from 'class-validator';
9
10
 
10
11
  @Injectable()
11
12
  export class SavedFilterService extends EntityServiceImpl {
@@ -32,6 +33,7 @@ export class SavedFilterService extends EntityServiceImpl {
32
33
  }
33
34
 
34
35
  entityData.user_id = loggedInUser?.id ?? null;
36
+
35
37
  // Save the master record without code
36
38
  const savedMaster = await super.createEntity(master, loggedInUser);
37
39
 
@@ -45,10 +47,22 @@ export class SavedFilterService extends EntityServiceImpl {
45
47
  // Save filter details using generated code
46
48
  const details = (entityData as any).filterDetails ?? [];
47
49
  if (details.length) {
48
- const prepared = details.map((detail: any) => ({
49
- ...detail,
50
- mapped_filter_code: savedMaster.code,
51
- }));
50
+ const prepared = details.map((detail: any) => {
51
+ // If detail.filter_value is an array, join it with comma
52
+ if (Array.isArray(detail.filter_value)) {
53
+ return {
54
+ ...detail,
55
+ mapped_filter_code: savedMaster.code,
56
+ filter_value: detail.filter_value.join(','),
57
+ data_type: 'multiselect',
58
+ };
59
+ }
60
+ // Otherwise, just add mapped_filter_code
61
+ return {
62
+ ...detail,
63
+ mapped_filter_code: savedMaster.code,
64
+ };
65
+ });
52
66
 
53
67
  await this.savedFilterRepo.saveDetails(prepared);
54
68
  }
@@ -103,6 +117,6 @@ export class SavedFilterService extends EntityServiceImpl {
103
117
  }
104
118
 
105
119
  async getFilterById(id: number) {
106
- return this.savedFilterRepo.getFilterById(id);
120
+ return await this.savedFilterRepo.getFilterById(id);
107
121
  }
108
122
  }