rez_core 5.0.210 → 5.0.212
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/.idea/250218_ether_core.iml +12 -0
- package/.idea/codeStyles/Project.xml +59 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/modules.xml +8 -0
- package/.idea/vcs.xml +6 -0
- package/dist/module/filter/service/filter.service.js +14 -9
- package/dist/module/filter/service/filter.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/module/filter/service/filter.service.ts +63 -33
package/package.json
CHANGED
|
@@ -26,8 +26,7 @@ export class FilterService {
|
|
|
26
26
|
@Inject() protected readonly loggingService: LoggingService,
|
|
27
27
|
private readonly configService: ConfigService,
|
|
28
28
|
private readonly reflectionHelper: ReflectionHelper,
|
|
29
|
-
) {
|
|
30
|
-
}
|
|
29
|
+
) {}
|
|
31
30
|
|
|
32
31
|
schema = this.configService.get('DB_SCHEMA');
|
|
33
32
|
|
|
@@ -38,33 +37,69 @@ export class FilterService {
|
|
|
38
37
|
) {
|
|
39
38
|
if (!column) return [];
|
|
40
39
|
|
|
40
|
+
// let whereSQL = '';
|
|
41
|
+
// const values: any[] = [];
|
|
42
|
+
// let paramIndex = 1; // PostgreSQL placeholders start at $1
|
|
43
|
+
|
|
44
|
+
// if (whereClauses.length > 0) {
|
|
45
|
+
// const clauseParts = whereClauses.map((clause) => {
|
|
46
|
+
// let parsedQuery = clause.query.replace(/\be\./g, ''); // remove e.
|
|
47
|
+
|
|
48
|
+
// Object.entries(clause.params).forEach(([key, val]) => {
|
|
49
|
+
// if (Array.isArray(val)) {
|
|
50
|
+
// // Create ($1,$2,$3)
|
|
51
|
+
// const placeholders = val.map(() => `$${paramIndex++}`).join(', ');
|
|
52
|
+
|
|
53
|
+
// parsedQuery = parsedQuery.replace(
|
|
54
|
+
// new RegExp(`:${key}`, 'g'),
|
|
55
|
+
// `(${placeholders})`,
|
|
56
|
+
// );
|
|
57
|
+
|
|
58
|
+
// values.push(...val.map((v) => String(v)));
|
|
59
|
+
// } else {
|
|
60
|
+
// // Create $1
|
|
61
|
+
// const placeholder = `$${paramIndex++}`;
|
|
62
|
+
|
|
63
|
+
// parsedQuery = parsedQuery.replace(
|
|
64
|
+
// new RegExp(`:${key}`, 'g'),
|
|
65
|
+
// placeholder,
|
|
66
|
+
// );
|
|
67
|
+
|
|
68
|
+
// values.push(String(val));
|
|
69
|
+
// }
|
|
70
|
+
// });
|
|
71
|
+
|
|
72
|
+
// return parsedQuery;
|
|
73
|
+
// });
|
|
74
|
+
|
|
75
|
+
// whereSQL = `WHERE ${clauseParts.join(' AND ')}`;
|
|
76
|
+
// }
|
|
77
|
+
|
|
41
78
|
let whereSQL = '';
|
|
42
79
|
const values: any[] = [];
|
|
43
|
-
let paramIndex = 1;
|
|
80
|
+
let paramIndex = 1;
|
|
44
81
|
|
|
45
82
|
if (whereClauses.length > 0) {
|
|
46
83
|
const clauseParts = whereClauses.map((clause) => {
|
|
47
|
-
let parsedQuery = clause.query.replace(/\be\./g, '');
|
|
84
|
+
let parsedQuery = clause.query.replace(/\be\./g, '');
|
|
48
85
|
|
|
49
86
|
Object.entries(clause.params).forEach(([key, val]) => {
|
|
50
87
|
if (Array.isArray(val)) {
|
|
51
88
|
// Create ($1,$2,$3)
|
|
52
89
|
const placeholders = val.map(() => `$${paramIndex++}`).join(', ');
|
|
53
90
|
|
|
54
|
-
parsedQuery = parsedQuery
|
|
55
|
-
new RegExp(
|
|
56
|
-
`(${placeholders})
|
|
57
|
-
);
|
|
91
|
+
parsedQuery = parsedQuery
|
|
92
|
+
.replace(new RegExp(`:...${key}`, 'g'), `(${placeholders})`)
|
|
93
|
+
.replace(new RegExp(`:${key}`, 'g'), `(${placeholders})`);
|
|
58
94
|
|
|
59
95
|
values.push(...val.map((v) => String(v)));
|
|
60
96
|
} else {
|
|
61
97
|
// Create $1
|
|
62
98
|
const placeholder = `$${paramIndex++}`;
|
|
63
99
|
|
|
64
|
-
parsedQuery = parsedQuery
|
|
65
|
-
new RegExp(
|
|
66
|
-
placeholder
|
|
67
|
-
);
|
|
100
|
+
parsedQuery = parsedQuery
|
|
101
|
+
.replace(new RegExp(`:...${key}`, 'g'), placeholder)
|
|
102
|
+
.replace(new RegExp(`:${key}`, 'g'), placeholder);
|
|
68
103
|
|
|
69
104
|
values.push(String(val));
|
|
70
105
|
}
|
|
@@ -82,7 +117,6 @@ export class FilterService {
|
|
|
82
117
|
GROUP BY ${column}
|
|
83
118
|
`;
|
|
84
119
|
|
|
85
|
-
|
|
86
120
|
const rows = await this.entityManager.query(rawSQL, values);
|
|
87
121
|
|
|
88
122
|
const total = rows.reduce(
|
|
@@ -284,7 +318,6 @@ export class FilterService {
|
|
|
284
318
|
|
|
285
319
|
// Handle TEMPLATE entity special condition
|
|
286
320
|
if (entity_type === 'TEMP' || entity_type === 'TEM') {
|
|
287
|
-
|
|
288
321
|
if (level_type === 'ORG') {
|
|
289
322
|
baseWhere.push({
|
|
290
323
|
query: ` ((e.level_type = 'ORG' AND e.level_id = '${loggedInUser.enterprise_id}'))`,
|
|
@@ -325,8 +358,7 @@ export class FilterService {
|
|
|
325
358
|
!customLevelId
|
|
326
359
|
) {
|
|
327
360
|
baseWhere.push({
|
|
328
|
-
query:
|
|
329
|
-
'e.level_type = :level_type AND e.level_id = :level_id',
|
|
361
|
+
query: 'e.level_type = :level_type AND e.level_id = :level_id',
|
|
330
362
|
params: {
|
|
331
363
|
level_type,
|
|
332
364
|
level_id,
|
|
@@ -694,30 +726,28 @@ export class FilterService {
|
|
|
694
726
|
layoutPreference: any,
|
|
695
727
|
tabs: any,
|
|
696
728
|
) {
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
729
|
+
const sorting = layoutPreference?.mapped_json?.sorting;
|
|
730
|
+
|
|
731
|
+
if (sorting) {
|
|
732
|
+
if (Array.isArray(sorting?.tabs)) {
|
|
733
|
+
const preferenceTabArray = sorting?.tabs;
|
|
701
734
|
const tabFilter = preferenceTabArray.find(
|
|
702
|
-
(tabData) => tabData.tab_name === tabs?.value,
|
|
735
|
+
(tabData) => tabData.tab_name?.value === tabs?.value,
|
|
703
736
|
);
|
|
704
|
-
|
|
737
|
+
|
|
738
|
+
tabFilter?.sortby?.forEach(({ column, order }) => {
|
|
739
|
+
qb.addOrderBy(
|
|
740
|
+
`e.${column}`,
|
|
741
|
+
order?.toUpperCase() === 'DSC' ? 'DESC' : 'ASC',
|
|
742
|
+
);
|
|
743
|
+
});
|
|
744
|
+
} else if (Array.isArray(sorting.sortby)) {
|
|
745
|
+
sorting?.sortby?.forEach(({ column, order }) => {
|
|
705
746
|
qb.addOrderBy(
|
|
706
747
|
`e.${column}`,
|
|
707
748
|
order?.toUpperCase() === 'DSC' ? 'DESC' : 'ASC',
|
|
708
749
|
);
|
|
709
750
|
});
|
|
710
|
-
} else if (
|
|
711
|
-
Array.isArray(layoutPreference[0]?.mapped_json?.sorting?.sortby)
|
|
712
|
-
) {
|
|
713
|
-
layoutPreference[0]?.mapped_json?.sorting?.sortby?.forEach(
|
|
714
|
-
({ column, order }) => {
|
|
715
|
-
qb.addOrderBy(
|
|
716
|
-
`e.${column}`,
|
|
717
|
-
order?.toUpperCase() === 'DSC' ? 'DESC' : 'ASC',
|
|
718
|
-
);
|
|
719
|
-
},
|
|
720
|
-
);
|
|
721
751
|
}
|
|
722
752
|
}
|
|
723
753
|
|