rez_core 5.0.210 → 6.1.0

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.
Files changed (95) hide show
  1. package/dist/config/database.config.js +1 -1
  2. package/dist/config/database.config.js.map +1 -1
  3. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.d.ts +6 -0
  4. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js +32 -0
  5. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js.map +1 -0
  6. package/dist/module/entity_json/controller/entity_json.controller.d.ts +2 -9
  7. package/dist/module/entity_json/controller/entity_json.controller.js.map +1 -1
  8. package/dist/module/entity_json/entity/entityJson.entity.d.ts +2 -1
  9. package/dist/module/entity_json/entity/entityJson.entity.js +5 -1
  10. package/dist/module/entity_json/entity/entityJson.entity.js.map +1 -1
  11. package/dist/module/entity_json/entity_json.module.js +7 -2
  12. package/dist/module/entity_json/entity_json.module.js.map +1 -1
  13. package/dist/module/entity_json/service/entity_json.service.d.ts +5 -12
  14. package/dist/module/entity_json/service/entity_json.service.js +111 -29
  15. package/dist/module/entity_json/service/entity_json.service.js.map +1 -1
  16. package/dist/module/filter/controller/filter.controller.d.ts +12 -0
  17. package/dist/module/filter/controller/filter.controller.js +1 -1
  18. package/dist/module/filter/controller/filter.controller.js.map +1 -1
  19. package/dist/module/filter/filter.module.js +11 -2
  20. package/dist/module/filter/filter.module.js.map +1 -1
  21. package/dist/module/filter/service/filter.service.d.ts +38 -2
  22. package/dist/module/filter/service/filter.service.js +50 -56
  23. package/dist/module/filter/service/filter.service.js.map +1 -1
  24. package/dist/module/filter/service/flatjson-filter.service.d.ts +32 -0
  25. package/dist/module/filter/service/flatjson-filter.service.js +632 -0
  26. package/dist/module/filter/service/flatjson-filter.service.js.map +1 -0
  27. package/dist/module/filter/service/saved-filter.service.d.ts +3 -2
  28. package/dist/module/filter/service/saved-filter.service.js +14 -18
  29. package/dist/module/filter/service/saved-filter.service.js.map +1 -1
  30. package/dist/module/linked_attributes/controller/linked_attributes.controller.d.ts +19 -0
  31. package/dist/module/linked_attributes/controller/linked_attributes.controller.js +77 -0
  32. package/dist/module/linked_attributes/controller/linked_attributes.controller.js.map +1 -1
  33. package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.d.ts +13 -0
  34. package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.js +64 -0
  35. package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.js.map +1 -0
  36. package/dist/module/linked_attributes/linked_attributes.module.js +4 -2
  37. package/dist/module/linked_attributes/linked_attributes.module.js.map +1 -1
  38. package/dist/module/linked_attributes/service/linked_attributes.service.d.ts +41 -1
  39. package/dist/module/linked_attributes/service/linked_attributes.service.js +265 -1
  40. package/dist/module/linked_attributes/service/linked_attributes.service.js.map +1 -1
  41. package/dist/module/meta/controller/attribute-master.controller.d.ts +3 -0
  42. package/dist/module/meta/controller/attribute-master.controller.js +12 -0
  43. package/dist/module/meta/controller/attribute-master.controller.js.map +1 -1
  44. package/dist/module/meta/entity.module.js +2 -2
  45. package/dist/module/meta/entity.module.js.map +1 -1
  46. package/dist/module/meta/service/attribute-master.service.d.ts +6 -1
  47. package/dist/module/meta/service/attribute-master.service.js +20 -2
  48. package/dist/module/meta/service/attribute-master.service.js.map +1 -1
  49. package/dist/module/meta/service/entity-master.service.js +1 -0
  50. package/dist/module/meta/service/entity-master.service.js.map +1 -1
  51. package/dist/module/meta/service/entity-relation.service.d.ts +4 -3
  52. package/dist/module/meta/service/entity-relation.service.js +10 -4
  53. package/dist/module/meta/service/entity-relation.service.js.map +1 -1
  54. package/dist/module/meta/service/entity-service-impl.service.d.ts +1 -1
  55. package/dist/module/meta/service/entity-service-impl.service.js +2 -2
  56. package/dist/module/meta/service/entity-service-impl.service.js.map +1 -1
  57. package/dist/module/meta/service/entity-table.service.d.ts +5 -4
  58. package/dist/module/meta/service/entity-table.service.js +45 -24
  59. package/dist/module/meta/service/entity-table.service.js.map +1 -1
  60. package/dist/module/meta/service/resolver.service.d.ts +1 -1
  61. package/dist/module/meta/service/resolver.service.js +6 -3
  62. package/dist/module/meta/service/resolver.service.js.map +1 -1
  63. package/dist/module/workflow-automation/service/workflow-automation.service.js +2 -3
  64. package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
  65. package/dist/table.config.d.ts +1 -1
  66. package/dist/tsconfig.build.tsbuildinfo +1 -1
  67. package/package.json +1 -1
  68. package/src/config/database.config.ts +1 -1
  69. package/src/migrations/1732612800000-AddEntityJsonGinIndex.ts +41 -0
  70. package/src/module/entity_json/controller/entity_json.controller.ts +13 -0
  71. package/src/module/entity_json/docs/FlatJson_Filterin_System.md +2804 -0
  72. package/src/module/entity_json/entity/entityJson.entity.ts +4 -1
  73. package/src/module/entity_json/entity_json.module.ts +9 -5
  74. package/src/module/entity_json/service/entity_json.service.ts +236 -49
  75. package/src/module/filter/controller/filter.controller.ts +4 -4
  76. package/src/module/filter/filter.module.ts +12 -3
  77. package/src/module/filter/service/filter.service.ts +147 -94
  78. package/src/module/filter/service/flatjson-filter.service.ts +903 -0
  79. package/src/module/filter/service/saved-filter.service.ts +16 -26
  80. package/src/module/filter/test/flatjson-filter.service.spec.ts +415 -0
  81. package/src/module/linked_attributes/controller/linked_attributes.controller.ts +85 -0
  82. package/src/module/linked_attributes/dto/create-linked-attribute-smart.dto.ts +54 -0
  83. package/src/module/linked_attributes/linked_attributes.module.ts +5 -3
  84. package/src/module/linked_attributes/service/linked_attributes.service.ts +545 -2
  85. package/src/module/linked_attributes/test/linked-attributes.service.spec.ts +244 -0
  86. package/src/module/meta/controller/attribute-master.controller.ts +12 -0
  87. package/src/module/meta/entity.module.ts +3 -3
  88. package/src/module/meta/service/attribute-master.service.ts +29 -1
  89. package/src/module/meta/service/entity-master.service.ts +1 -0
  90. package/src/module/meta/service/entity-relation.service.ts +10 -6
  91. package/src/module/meta/service/entity-service-impl.service.ts +2 -1
  92. package/src/module/meta/service/entity-table.service.ts +82 -68
  93. package/src/module/meta/service/entity.service.ts +0 -1
  94. package/src/module/meta/service/resolver.service.ts +7 -3
  95. package/src/module/workflow-automation/service/workflow-automation.service.ts +2 -4
@@ -8,19 +8,55 @@ import { LoggingService } from 'src/utils/service/loggingUtil.service';
8
8
  import { ConfigService } from '@nestjs/config';
9
9
  import { ReflectionHelper } from '../../../utils/service/reflection-helper.service';
10
10
  import { EntityManager } from 'typeorm';
11
+ import { FlatjsonFilterService } from './flatjson-filter.service';
11
12
  export declare class FilterService {
12
13
  private entityManager;
13
14
  private readonly attributeMasterService;
14
15
  private readonly entityMasterService;
15
- private readonly savedFilterService;
16
16
  private readonly entityRelationService;
17
+ private readonly savedFilterService;
17
18
  private readonly resolverService;
18
19
  protected readonly loggingService: LoggingService;
19
20
  private readonly configService;
20
21
  private readonly reflectionHelper;
21
- constructor(entityManager: EntityManager, attributeMasterService: AttributeMasterService, entityMasterService: EntityMasterService, savedFilterService: SavedFilterService, entityRelationService: EntityRelationService, resolverService: ResolverService, loggingService: LoggingService, configService: ConfigService, reflectionHelper: ReflectionHelper);
22
+ private readonly flatjsonFilterService;
23
+ constructor(entityManager: EntityManager, attributeMasterService: AttributeMasterService, entityMasterService: EntityMasterService, entityRelationService: EntityRelationService, savedFilterService: SavedFilterService, resolverService: ResolverService, loggingService: LoggingService, configService: ConfigService, reflectionHelper: ReflectionHelper, flatjsonFilterService: FlatjsonFilterService);
22
24
  schema: any;
23
25
  private gettab_value_counts;
26
+ applyFilterWithRouting(dto: FilterRequestDto): Promise<{
27
+ success: boolean;
28
+ data: {
29
+ entity_tabs: any[];
30
+ entity_list: any[];
31
+ pagination: {
32
+ total: number;
33
+ page: number;
34
+ size: number;
35
+ totalPages: number;
36
+ hasNextPage: boolean;
37
+ hasPreviousPage: boolean;
38
+ };
39
+ };
40
+ } | {
41
+ success: boolean;
42
+ data: {
43
+ entity_tabs: never[];
44
+ entity_list: never[];
45
+ pagination: {};
46
+ };
47
+ } | {
48
+ success: boolean;
49
+ data: {
50
+ entity_tabs: any;
51
+ entity_list: any;
52
+ pagination: {
53
+ total: any;
54
+ page: any;
55
+ size: any;
56
+ totalPages: any;
57
+ };
58
+ };
59
+ }>;
24
60
  applyFilterWrapper(dto: FilterRequestDto): Promise<{
25
61
  success: boolean;
26
62
  data: {
@@ -24,17 +24,19 @@ const loggingUtil_service_1 = require("../../../utils/service/loggingUtil.servic
24
24
  const config_1 = require("@nestjs/config");
25
25
  const reflection_helper_service_1 = require("../../../utils/service/reflection-helper.service");
26
26
  const typeorm_1 = require("typeorm");
27
+ const flatjson_filter_service_1 = require("./flatjson-filter.service");
27
28
  let FilterService = class FilterService {
28
- constructor(entityManager, attributeMasterService, entityMasterService, savedFilterService, entityRelationService, resolverService, loggingService, configService, reflectionHelper) {
29
+ constructor(entityManager, attributeMasterService, entityMasterService, entityRelationService, savedFilterService, resolverService, loggingService, configService, reflectionHelper, flatjsonFilterService) {
29
30
  this.entityManager = entityManager;
30
31
  this.attributeMasterService = attributeMasterService;
31
32
  this.entityMasterService = entityMasterService;
32
- this.savedFilterService = savedFilterService;
33
33
  this.entityRelationService = entityRelationService;
34
+ this.savedFilterService = savedFilterService;
34
35
  this.resolverService = resolverService;
35
36
  this.loggingService = loggingService;
36
37
  this.configService = configService;
37
38
  this.reflectionHelper = reflectionHelper;
39
+ this.flatjsonFilterService = flatjsonFilterService;
38
40
  this.schema = this.configService.get('DB_SCHEMA');
39
41
  }
40
42
  async gettab_value_counts(tableName, column, whereClauses) {
@@ -77,6 +79,30 @@ let FilterService = class FilterService {
77
79
  })),
78
80
  ];
79
81
  }
82
+ async applyFilterWithRouting(dto) {
83
+ const useFlatjson = dto.queryParams?.use_flatjson === 'true';
84
+ if (useFlatjson) {
85
+ await this.loggingService.log('info', 'FilterService', 'applyFilterWithRouting', `Using FLATJSON filtering for ${dto.entity_type}`);
86
+ const result = await this.flatjsonFilterService.applyFlatjsonFilter(dto);
87
+ return {
88
+ success: true,
89
+ data: {
90
+ entity_tabs: result.tabCounts || [],
91
+ entity_list: result.data,
92
+ pagination: {
93
+ total: result.total,
94
+ page: result.page,
95
+ size: result.size,
96
+ totalPages: result.totalPages,
97
+ },
98
+ },
99
+ };
100
+ }
101
+ else {
102
+ await this.loggingService.log('info', 'FilterService', 'applyFilterWithRouting', `Using TRADITIONAL filtering for ${dto.entity_type}`);
103
+ return this.applyFilterWrapper(dto);
104
+ }
105
+ }
80
106
  async applyFilterWrapper(dto) {
81
107
  const { entity_type, quickFilter = [], savedFilterCode, attributeFilter = [], loggedInUser, } = dto;
82
108
  const savedFilters = await this.getSavedFilters(savedFilterCode ?? undefined);
@@ -146,7 +172,7 @@ let FilterService = class FilterService {
146
172
  }
147
173
  async applyFilter(dto) {
148
174
  const { entity_type, quickFilter, savedFilterCode, attributeFilter, tabs, sortby, loggedInUser, queryParams, customLevelType, customLevelId, customAppCode, } = dto;
149
- const { level_type, level_id, id: user_id, appcode, organization_id, } = loggedInUser || {};
175
+ const { level_type, level_id, id: user_id, appcode, organization_id, enterprise_id, } = loggedInUser || {};
150
176
  const entityMeta = await this.entityMasterService.getEntityData(entity_type, loggedInUser);
151
177
  const tableName = entityMeta?.data_source;
152
178
  if (!tableName) {
@@ -275,43 +301,6 @@ let FilterService = class FilterService {
275
301
  }) || [];
276
302
  let filteredTabs = await this.getFilteredTabs(layout, showList, entityMeta, baseWhere, tabs, loggedInUser);
277
303
  const dataWhere = [...baseWhere];
278
- if (tabs?.columnName && tabs?.value) {
279
- const tabAttrMeta = attributeMetaMap[tabs.columnName];
280
- const tabValue = tabs.value.toLowerCase();
281
- if (tabValue === 'others') {
282
- const valuesToExclude = showList
283
- .filter((v) => v.label.toLowerCase() !== 'all')
284
- .map((v) => v.value);
285
- if (valuesToExclude.length > 0) {
286
- for (const value of valuesToExclude) {
287
- const resolvedId = await this.resolverService.getResolvedId(loggedInUser, tabs.columnName, value, entity_type);
288
- if (resolvedId) {
289
- const tabCondition = this.buildCondition({
290
- filter_attribute: tabs.columnName,
291
- filter_operator: 'not_equal',
292
- filter_value: [resolvedId],
293
- skip_id: true,
294
- }, tabAttrMeta);
295
- if (tabCondition)
296
- dataWhere.push(tabCondition);
297
- }
298
- }
299
- }
300
- }
301
- else if (tabValue !== 'all') {
302
- const resolvedId = await this.resolverService.getResolvedId(loggedInUser, tabs.columnName, tabs.value, entity_type);
303
- if (resolvedId) {
304
- const tabCondition = this.buildCondition({
305
- filter_attribute: tabs.columnName,
306
- filter_operator: 'equal',
307
- filter_value: [resolvedId],
308
- skip_id: true,
309
- }, tabAttrMeta);
310
- if (tabCondition)
311
- dataWhere.push(tabCondition);
312
- }
313
- }
314
- }
315
304
  let qb = this.entityManager
316
305
  .createQueryBuilder()
317
306
  .select('e.*')
@@ -342,7 +331,6 @@ let FilterService = class FilterService {
342
331
  return formattedRow;
343
332
  };
344
333
  const formattedEntityList = entity_list.map(formatDatesInRow);
345
- const resolvedEntityList = await Promise.all(formattedEntityList.map((row) => this.resolverService.getResolvedData(loggedInUser, row, entity_type)));
346
334
  const resolvedTabs = await Promise.all(filteredTabs.map(async (tab) => {
347
335
  const tabAttrKey = layout?.attribute || tabs?.columnName;
348
336
  if (!tabAttrKey ||
@@ -350,8 +338,7 @@ let FilterService = class FilterService {
350
338
  tab.tab_value?.toLowerCase() === 'others') {
351
339
  return tab;
352
340
  }
353
- const resolvedVal = await this.resolverService.getResolvedValue(loggedInUser, tabAttrKey, tab.tab_value, entity_type);
354
- return { ...tab, tab_value: resolvedVal ?? tab.tab_value };
341
+ return { ...tab, tab_value: tab.tab_value ?? tab.tab_value };
355
342
  }));
356
343
  const countQb = this.entityManager
357
344
  .createQueryBuilder()
@@ -365,7 +352,7 @@ let FilterService = class FilterService {
365
352
  success: true,
366
353
  data: {
367
354
  entity_tabs: resolvedTabs,
368
- entity_list: resolvedEntityList,
355
+ entity_list: formattedEntityList,
369
356
  pagination: {
370
357
  total,
371
358
  page,
@@ -448,16 +435,17 @@ let FilterService = class FilterService {
448
435
  return filteredTabs;
449
436
  }
450
437
  async sortTabsByShowList(qb, sortby, layoutPreference, tabs) {
451
- if (layoutPreference && layoutPreference[0]?.mapped_json?.sorting) {
452
- if (Array.isArray(layoutPreference[0]?.mapped_json?.sorting?.tabs)) {
453
- const preferenceTabArray = layoutPreference[0]?.mapped_json?.sorting?.tabs;
454
- const tabFilter = preferenceTabArray.find((tabData) => tabData.tab_name === tabs?.value);
455
- tabFilter?.sortby.forEach(({ column, order }) => {
438
+ const sorting = layoutPreference?.mapped_json?.sorting;
439
+ if (sorting) {
440
+ if (Array.isArray(sorting?.tabs)) {
441
+ const preferenceTabArray = sorting?.tabs;
442
+ const tabFilter = preferenceTabArray.find((tabData) => tabData.tab_name?.value === tabs?.value);
443
+ tabFilter?.sortby?.forEach(({ column, order }) => {
456
444
  qb.addOrderBy(`e.${column}`, order?.toUpperCase() === 'DSC' ? 'DESC' : 'ASC');
457
445
  });
458
446
  }
459
- else if (Array.isArray(layoutPreference[0]?.mapped_json?.sorting?.sortby)) {
460
- layoutPreference[0]?.mapped_json?.sorting?.sortby?.forEach(({ column, order }) => {
447
+ else if (Array.isArray(sorting.sortby)) {
448
+ sorting?.sortby?.forEach(({ column, order }) => {
461
449
  qb.addOrderBy(`e.${column}`, order?.toUpperCase() === 'DSC' ? 'DESC' : 'ASC');
462
450
  });
463
451
  }
@@ -905,17 +893,23 @@ let FilterService = class FilterService {
905
893
  exports.FilterService = FilterService;
906
894
  exports.FilterService = FilterService = __decorate([
907
895
  (0, common_1.Injectable)(),
908
- __param(3, (0, common_1.Inject)('SavedFilterService')),
909
- __param(4, (0, common_1.Inject)('EntityRelationService')),
910
- __param(6, (0, common_1.Inject)()),
896
+ __param(1, (0, common_1.Inject)((0, common_1.forwardRef)(() => attribute_master_service_1.AttributeMasterService))),
897
+ __param(2, (0, common_1.Inject)((0, common_1.forwardRef)(() => entity_master_service_1.EntityMasterService))),
898
+ __param(3, (0, common_1.Inject)('EntityRelationService')),
899
+ __param(4, (0, common_1.Inject)('SavedFilterService')),
900
+ __param(5, (0, common_1.Inject)((0, common_1.forwardRef)(() => resolver_service_1.ResolverService))),
901
+ __param(6, (0, common_1.Inject)((0, common_1.forwardRef)(() => loggingUtil_service_1.LoggingService))),
902
+ __param(8, (0, common_1.Inject)((0, common_1.forwardRef)(() => reflection_helper_service_1.ReflectionHelper))),
903
+ __param(9, (0, common_1.Inject)((0, common_1.forwardRef)(() => flatjson_filter_service_1.FlatjsonFilterService))),
911
904
  __metadata("design:paramtypes", [typeorm_1.EntityManager,
912
905
  attribute_master_service_1.AttributeMasterService,
913
906
  entity_master_service_1.EntityMasterService,
914
- saved_filter_service_1.SavedFilterService,
915
907
  entity_relation_service_1.EntityRelationService,
908
+ saved_filter_service_1.SavedFilterService,
916
909
  resolver_service_1.ResolverService,
917
910
  loggingUtil_service_1.LoggingService,
918
911
  config_1.ConfigService,
919
- reflection_helper_service_1.ReflectionHelper])
912
+ reflection_helper_service_1.ReflectionHelper,
913
+ flatjson_filter_service_1.FlatjsonFilterService])
920
914
  ], FilterService);
921
915
  //# sourceMappingURL=filter.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter.service.js","sourceRoot":"","sources":["../../../../src/module/filter/service/filter.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter.service.js","sourceRoot":"","sources":["../../../../src/module/filter/service/filter.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { EntityManager } from 'typeorm';
2
+ import { EntityMasterService } from 'src/module/meta/service/entity-master.service';
3
+ import { AttributeMasterService } from 'src/module/meta/service/attribute-master.service';
4
+ import { ResolverService } from 'src/module/meta/service/resolver.service';
5
+ import { LoggingService } from 'src/utils/service/loggingUtil.service';
6
+ import { ConfigService } from '@nestjs/config';
7
+ import { FilterRequestDto } from '../dto/filter-request.dto';
8
+ import { SavedFilterRepositoryService } from '../repository/saved-filter.repository';
9
+ import { EntityJSONService } from 'src/module/entity_json/service/entity_json.service';
10
+ export declare class FlatjsonFilterService {
11
+ private readonly entityManager;
12
+ private readonly entityMasterService;
13
+ private readonly attributeMasterService;
14
+ private readonly resolverService;
15
+ private readonly loggingService;
16
+ private readonly configService;
17
+ private readonly savedFilterRepositoryService;
18
+ private readonly entityJsonService;
19
+ constructor(entityManager: EntityManager, entityMasterService: EntityMasterService, attributeMasterService: AttributeMasterService, resolverService: ResolverService, loggingService: LoggingService, configService: ConfigService, savedFilterRepositoryService: SavedFilterRepositoryService, entityJsonService: EntityJSONService);
20
+ applyFlatjsonFilter(dto: FilterRequestDto): Promise<any>;
21
+ private buildJsonbConditions;
22
+ private resolveEntityData;
23
+ private buildJsonbCondition;
24
+ private buildTextCondition;
25
+ private buildNumberCondition;
26
+ private buildDateCondition;
27
+ private buildSelectCondition;
28
+ private buildMultiSelectCondition;
29
+ private buildYearCondition;
30
+ private getJsonbTabCounts;
31
+ private applyJsonbSorting;
32
+ }