@servicelabsco/slabs-access-manager 0.1.57 → 0.1.59

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 (142) hide show
  1. package/dist/access/controllers/choice.list.controller.d.ts +22 -0
  2. package/dist/access/controllers/choice.list.controller.js +149 -0
  3. package/dist/access/controllers/choice.list.controller.js.map +1 -0
  4. package/dist/access/controllers/choice.type.controller.d.ts +27 -0
  5. package/dist/access/controllers/choice.type.controller.js +174 -0
  6. package/dist/access/controllers/choice.type.controller.js.map +1 -0
  7. package/dist/access/controllers/custom.field.controller.d.ts +18 -0
  8. package/dist/access/controllers/custom.field.controller.js +115 -0
  9. package/dist/access/controllers/custom.field.controller.js.map +1 -0
  10. package/dist/access/controllers/index.d.ts +3 -0
  11. package/dist/access/controllers/index.js +3 -0
  12. package/dist/access/controllers/index.js.map +1 -1
  13. package/dist/access/dtos/add.choice.list.dto.d.ts +4 -0
  14. package/dist/access/dtos/add.choice.list.dto.js +29 -0
  15. package/dist/access/dtos/add.choice.list.dto.js.map +1 -0
  16. package/dist/access/dtos/add.choice.type.dto.d.ts +5 -0
  17. package/dist/access/dtos/add.choice.type.dto.js +34 -0
  18. package/dist/access/dtos/add.choice.type.dto.js.map +1 -0
  19. package/dist/access/dtos/add.custom.field.dto.d.ts +9 -0
  20. package/dist/access/dtos/add.custom.field.dto.js +60 -0
  21. package/dist/access/dtos/add.custom.field.dto.js.map +1 -0
  22. package/dist/access/dtos/choice.list.attributes.dto.d.ts +3 -0
  23. package/dist/access/dtos/choice.list.attributes.dto.js +8 -0
  24. package/dist/access/dtos/choice.list.attributes.dto.js.map +1 -0
  25. package/dist/access/dtos/choice.type.attributes.dto.d.ts +3 -0
  26. package/dist/access/dtos/choice.type.attributes.dto.js +8 -0
  27. package/dist/access/dtos/choice.type.attributes.dto.js.map +1 -0
  28. package/dist/access/dtos/choice.type.list.filter.dto.d.ts +4 -0
  29. package/dist/access/dtos/choice.type.list.filter.dto.js +25 -0
  30. package/dist/access/dtos/choice.type.list.filter.dto.js.map +1 -0
  31. package/dist/access/dtos/custom.field.attributes.dto.d.ts +3 -0
  32. package/dist/access/dtos/custom.field.attributes.dto.js +8 -0
  33. package/dist/access/dtos/custom.field.attributes.dto.js.map +1 -0
  34. package/dist/access/dtos/custom.field.list.filter.dto.d.ts +5 -0
  35. package/dist/access/dtos/custom.field.list.filter.dto.js +31 -0
  36. package/dist/access/dtos/custom.field.list.filter.dto.js.map +1 -0
  37. package/dist/access/dtos/index.d.ts +9 -0
  38. package/dist/access/dtos/index.js +9 -0
  39. package/dist/access/dtos/index.js.map +1 -1
  40. package/dist/access/dtos/modify.custom.field.status.dto.d.ts +4 -0
  41. package/dist/access/dtos/modify.custom.field.status.dto.js +30 -0
  42. package/dist/access/dtos/modify.custom.field.status.dto.js.map +1 -0
  43. package/dist/access/entities/choice.list.entity.d.ts +10 -0
  44. package/dist/access/entities/choice.list.entity.js +44 -0
  45. package/dist/access/entities/choice.list.entity.js.map +1 -0
  46. package/dist/access/entities/choice.type.entity.d.ts +13 -0
  47. package/dist/access/entities/choice.type.entity.js +53 -0
  48. package/dist/access/entities/choice.type.entity.js.map +1 -0
  49. package/dist/access/entities/custom.field.entity.d.ts +19 -0
  50. package/dist/access/entities/custom.field.entity.js +82 -0
  51. package/dist/access/entities/custom.field.entity.js.map +1 -0
  52. package/dist/access/entities/index.d.ts +3 -0
  53. package/dist/access/entities/index.js +3 -0
  54. package/dist/access/entities/index.js.map +1 -1
  55. package/dist/access/enums/custom.column.type.enum.d.ts +9 -0
  56. package/dist/access/enums/custom.column.type.enum.js +14 -0
  57. package/dist/access/enums/custom.column.type.enum.js.map +1 -0
  58. package/dist/access/enums/index.d.ts +1 -0
  59. package/dist/access/enums/index.js +18 -0
  60. package/dist/access/enums/index.js.map +1 -0
  61. package/dist/access/es6.classes.d.ts +26 -7
  62. package/dist/access/es6.classes.js +58 -0
  63. package/dist/access/es6.classes.js.map +1 -1
  64. package/dist/access/index.d.ts +1 -0
  65. package/dist/access/index.js +1 -0
  66. package/dist/access/index.js.map +1 -1
  67. package/dist/access/jobs/choice.list.job.d.ts +7 -0
  68. package/dist/access/jobs/choice.list.job.js +29 -0
  69. package/dist/access/jobs/choice.list.job.js.map +1 -0
  70. package/dist/access/jobs/choice.type.job.d.ts +7 -0
  71. package/dist/access/jobs/choice.type.job.js +29 -0
  72. package/dist/access/jobs/choice.type.job.js.map +1 -0
  73. package/dist/access/jobs/custom.field.job.d.ts +7 -0
  74. package/dist/access/jobs/custom.field.job.js +29 -0
  75. package/dist/access/jobs/custom.field.job.js.map +1 -0
  76. package/dist/access/jobs/index.d.ts +3 -0
  77. package/dist/access/jobs/index.js +3 -0
  78. package/dist/access/jobs/index.js.map +1 -1
  79. package/dist/access/libraries/index.d.ts +5 -0
  80. package/dist/access/libraries/index.js +5 -0
  81. package/dist/access/libraries/index.js.map +1 -1
  82. package/dist/access/libraries/process.choice.type.list.d.ts +20 -0
  83. package/dist/access/libraries/process.choice.type.list.js +35 -0
  84. package/dist/access/libraries/process.choice.type.list.js.map +1 -0
  85. package/dist/access/libraries/process.common.custom.field.d.ts +9 -0
  86. package/dist/access/libraries/process.common.custom.field.js +15 -0
  87. package/dist/access/libraries/process.common.custom.field.js.map +1 -0
  88. package/dist/access/libraries/process.custom.field.creation.d.ts +14 -0
  89. package/dist/access/libraries/process.custom.field.creation.js +72 -0
  90. package/dist/access/libraries/process.custom.field.creation.js.map +1 -0
  91. package/dist/access/libraries/process.custom.field.list.d.ts +21 -0
  92. package/dist/access/libraries/process.custom.field.list.js +41 -0
  93. package/dist/access/libraries/process.custom.field.list.js.map +1 -0
  94. package/dist/access/libraries/validate.custom.field.data.d.ts +15 -0
  95. package/dist/access/libraries/validate.custom.field.data.js +73 -0
  96. package/dist/access/libraries/validate.custom.field.data.js.map +1 -0
  97. package/dist/access/services/access.business.service.d.ts +5 -0
  98. package/dist/access/services/access.business.service.js +20 -1
  99. package/dist/access/services/access.business.service.js.map +1 -1
  100. package/dist/access/services/audit.log.service.d.ts +6 -0
  101. package/dist/access/services/audit.log.service.js +28 -0
  102. package/dist/access/services/audit.log.service.js.map +1 -0
  103. package/dist/access/services/custom.field.service.d.ts +12 -0
  104. package/dist/access/services/custom.field.service.js +78 -0
  105. package/dist/access/services/custom.field.service.js.map +1 -0
  106. package/dist/access/services/es6.jobs.service.d.ts +7 -1
  107. package/dist/access/services/es6.jobs.service.js +13 -1
  108. package/dist/access/services/es6.jobs.service.js.map +1 -1
  109. package/dist/access/services/index.d.ts +2 -0
  110. package/dist/access/services/index.js +2 -0
  111. package/dist/access/services/index.js.map +1 -1
  112. package/dist/access/subscribers/choice.list.subscriber.d.ts +12 -0
  113. package/dist/access/subscribers/choice.list.subscriber.js +40 -0
  114. package/dist/access/subscribers/choice.list.subscriber.js.map +1 -0
  115. package/dist/access/subscribers/choice.type.subscriber.d.ts +12 -0
  116. package/dist/access/subscribers/choice.type.subscriber.js +40 -0
  117. package/dist/access/subscribers/choice.type.subscriber.js.map +1 -0
  118. package/dist/access/subscribers/custom.field.subscriber.d.ts +12 -0
  119. package/dist/access/subscribers/custom.field.subscriber.js +40 -0
  120. package/dist/access/subscribers/custom.field.subscriber.js.map +1 -0
  121. package/dist/access/subscribers/index.d.ts +3 -0
  122. package/dist/access/subscribers/index.js +3 -0
  123. package/dist/access/subscribers/index.js.map +1 -1
  124. package/dist/config/entity.constants.d.ts +6 -0
  125. package/dist/config/entity.constants.js +6 -0
  126. package/dist/config/entity.constants.js.map +1 -1
  127. package/dist/config/source.hash.d.ts +2 -0
  128. package/dist/config/source.hash.js +2 -0
  129. package/dist/config/source.hash.js.map +1 -1
  130. package/dist/migrations/1681370521886-CreateChoiceTypeTable.d.ts +5 -0
  131. package/dist/migrations/1681370521886-CreateChoiceTypeTable.js +21 -0
  132. package/dist/migrations/1681370521886-CreateChoiceTypeTable.js.map +1 -0
  133. package/dist/migrations/1681370822214-CreateChoiceListTable.d.ts +5 -0
  134. package/dist/migrations/1681370822214-CreateChoiceListTable.js +20 -0
  135. package/dist/migrations/1681370822214-CreateChoiceListTable.js.map +1 -0
  136. package/dist/migrations/1681373004868-AddCustomFieldTypesDataSeederTable.d.ts +7 -0
  137. package/dist/migrations/1681373004868-AddCustomFieldTypesDataSeederTable.js +107 -0
  138. package/dist/migrations/1681373004868-AddCustomFieldTypesDataSeederTable.js.map +1 -0
  139. package/dist/migrations/1681452401683-CreateCustomFieldTable.d.ts +5 -0
  140. package/dist/migrations/1681452401683-CreateCustomFieldTable.js +27 -0
  141. package/dist/migrations/1681452401683-CreateCustomFieldTable.js.map +1 -0
  142. package/package.json +1 -1
@@ -21,7 +21,10 @@ __exportStar(require("./business.user.group.job"), exports);
21
21
  __exportStar(require("./business.user.job"), exports);
22
22
  __exportStar(require("./business.user.role.job"), exports);
23
23
  __exportStar(require("./child.menu.job"), exports);
24
+ __exportStar(require("./choice.list.job"), exports);
25
+ __exportStar(require("./choice.type.job"), exports);
24
26
  __exportStar(require("./conversation.job"), exports);
27
+ __exportStar(require("./custom.field.job"), exports);
25
28
  __exportStar(require("./custom.report.job"), exports);
26
29
  __exportStar(require("./dashboard.component.job"), exports);
27
30
  __exportStar(require("./dashboard.job"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/access/jobs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AAAA,4DAA0C;AAAA,4DAA0C;AAAA,4DAA0C;AAAA,sDAAoC;AAAA,2DAAyC;AAAA,mDAAiC;AAAA,qDAAmC;AAAA,sDAAoC;AAAA,4DAA0C;AAAA,kDAAgC;AAAA,qDAAmC;AAAA,yDAAuC;AAAA,sDAAoC;AAAA,wDAAsC;AAAA,qDAAmC;AAAA,mDAAiC;AAAA,wDAAsC;AAAA,uDAAqC;AAAA,qDAAmC;AAAA,2DAAyC;AAAA,oDAAkC;AAAA,6CAA2B;AAAA,kDAAgC;AAAA,+CAA6B;AAAA,oDAAkC;AAAA,8DAA4C;AAAA,yDAAuC;AAAA,gDAA8B;AAAA,mDAAiC;AAAA,yDAAuC;AAAA,oEAAkD;AAAA,kDAAgC;AAAA,uDAAqC;AAAA,wDAAsC;AAAA,kDAAgC;AAAA,6DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/access/jobs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AAAA,4DAA0C;AAAA,4DAA0C;AAAA,4DAA0C;AAAA,sDAAoC;AAAA,2DAAyC;AAAA,mDAAiC;AAAA,oDAAkC;AAAA,oDAAkC;AAAA,qDAAmC;AAAA,qDAAmC;AAAA,sDAAoC;AAAA,4DAA0C;AAAA,kDAAgC;AAAA,qDAAmC;AAAA,yDAAuC;AAAA,sDAAoC;AAAA,wDAAsC;AAAA,qDAAmC;AAAA,mDAAiC;AAAA,wDAAsC;AAAA,uDAAqC;AAAA,qDAAmC;AAAA,2DAAyC;AAAA,oDAAkC;AAAA,6CAA2B;AAAA,kDAAgC;AAAA,+CAA6B;AAAA,oDAAkC;AAAA,8DAA4C;AAAA,yDAAuC;AAAA,gDAA8B;AAAA,mDAAiC;AAAA,yDAAuC;AAAA,oEAAkD;AAAA,kDAAgC;AAAA,uDAAqC;AAAA,wDAAsC;AAAA,kDAAgC;AAAA,6DAA0C"}
@@ -3,8 +3,12 @@ export * from './process.application.menu';
3
3
  export * from './process.business.group.role.updation';
4
4
  export * from './process.business.user.group.list';
5
5
  export * from './process.business.user.role.update';
6
+ export * from './process.choice.type.list';
7
+ export * from './process.common.custom.field';
6
8
  export * from './process.common.list';
7
9
  export * from './process.conversation.data';
10
+ export * from './process.custom.field.creation';
11
+ export * from './process.custom.field.list';
8
12
  export * from './process.dashboard.report';
9
13
  export * from './process.date.filter';
10
14
  export * from './process.db.find';
@@ -20,3 +24,4 @@ export * from './process.scheduled.report.data';
20
24
  export * from './process.scheduled.report.list';
21
25
  export * from './process.test.list';
22
26
  export * from './process.user.group.creation';
27
+ export * from './validate.custom.field.data';
@@ -19,8 +19,12 @@ __exportStar(require("./process.application.menu"), exports);
19
19
  __exportStar(require("./process.business.group.role.updation"), exports);
20
20
  __exportStar(require("./process.business.user.group.list"), exports);
21
21
  __exportStar(require("./process.business.user.role.update"), exports);
22
+ __exportStar(require("./process.choice.type.list"), exports);
23
+ __exportStar(require("./process.common.custom.field"), exports);
22
24
  __exportStar(require("./process.common.list"), exports);
23
25
  __exportStar(require("./process.conversation.data"), exports);
26
+ __exportStar(require("./process.custom.field.creation"), exports);
27
+ __exportStar(require("./process.custom.field.list"), exports);
24
28
  __exportStar(require("./process.dashboard.report"), exports);
25
29
  __exportStar(require("./process.date.filter"), exports);
26
30
  __exportStar(require("./process.db.find"), exports);
@@ -36,4 +40,5 @@ __exportStar(require("./process.scheduled.report.data"), exports);
36
40
  __exportStar(require("./process.scheduled.report.list"), exports);
37
41
  __exportStar(require("./process.test.list"), exports);
38
42
  __exportStar(require("./process.user.group.creation"), exports);
43
+ __exportStar(require("./validate.custom.field.data"), exports);
39
44
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/access/libraries/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAAA,6DAA2C;AAAA,yEAAuD;AAAA,qEAAmD;AAAA,sEAAoD;AAAA,wDAAsC;AAAA,8DAA4C;AAAA,6DAA2C;AAAA,wDAAsC;AAAA,oDAAkC;AAAA,8DAA4C;AAAA,8DAA4C;AAAA,kEAAgD;AAAA,4DAA0C;AAAA,6DAA2C;AAAA,yDAAuC;AAAA,4DAA0C;AAAA,wDAAsC;AAAA,kEAAgD;AAAA,kEAAgD;AAAA,sDAAoC;AAAA,gEAA6C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/access/libraries/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAAA,6DAA2C;AAAA,yEAAuD;AAAA,qEAAmD;AAAA,sEAAoD;AAAA,6DAA2C;AAAA,gEAA8C;AAAA,wDAAsC;AAAA,8DAA4C;AAAA,kEAAgD;AAAA,8DAA4C;AAAA,6DAA2C;AAAA,wDAAsC;AAAA,oDAAkC;AAAA,8DAA4C;AAAA,8DAA4C;AAAA,kEAAgD;AAAA,4DAA0C;AAAA,6DAA2C;AAAA,yDAAuC;AAAA,4DAA0C;AAAA,wDAAsC;AAAA,kEAAgD;AAAA,kEAAgD;AAAA,sDAAoC;AAAA,gEAA8C;AAAA,+DAA4C"}
@@ -0,0 +1,20 @@
1
+ import { ChoiceTypeListFilterDto } from '../dtos/choice.type.list.filter.dto';
2
+ import { ListResponseDto } from '../dtos/list.response.dto';
3
+ import { AccessBusinessEntity } from '../entities/access.business.entity';
4
+ import { ListingService } from '../services/listing.service';
5
+ import { ProcessCommonList } from './process.common.list';
6
+ export declare class ProcessChoiceTypeList extends ProcessCommonList {
7
+ protected readonly business: AccessBusinessEntity;
8
+ protected readonly listingService: ListingService;
9
+ protected filter: ChoiceTypeListFilterDto;
10
+ protected config: {
11
+ sql: string;
12
+ order: string;
13
+ columns: string[];
14
+ metrics: any[];
15
+ };
16
+ constructor(business: AccessBusinessEntity, listingService: ListingService);
17
+ process(filter: ChoiceTypeListFilterDto): Promise<ListResponseDto>;
18
+ private processFilters;
19
+ private search;
20
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessChoiceTypeList = void 0;
4
+ const process_common_list_1 = require("./process.common.list");
5
+ class ProcessChoiceTypeList extends process_common_list_1.ProcessCommonList {
6
+ constructor(business, listingService) {
7
+ super();
8
+ this.business = business;
9
+ this.listingService = listingService;
10
+ this.config = {
11
+ sql: `bz_choice_types a where a.deleted_at is null`,
12
+ order: 'sq.name asc',
13
+ columns: ['a.*'],
14
+ metrics: [],
15
+ };
16
+ }
17
+ async process(filter) {
18
+ this.filter = filter;
19
+ this.processFilters();
20
+ return this.handle();
21
+ }
22
+ processFilters() {
23
+ this.restrictions.push(`a.business_id = ${this.business.id}`);
24
+ this.search();
25
+ this.filterActive();
26
+ }
27
+ search() {
28
+ if (!this.filter.search)
29
+ return;
30
+ const str = this.filter.search;
31
+ this.restrictions.push(`a.name ilike '%${str}%'`);
32
+ }
33
+ }
34
+ exports.ProcessChoiceTypeList = ProcessChoiceTypeList;
35
+ //# sourceMappingURL=process.choice.type.list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.choice.type.list.js","sourceRoot":"","sources":["../../../src/access/libraries/process.choice.type.list.ts"],"names":[],"mappings":";;;AAIA,+DAA0D;AAO1D,MAAa,qBAAsB,SAAQ,uCAAiB;IAqBxD,YACuB,QAA8B,EAC9B,cAA8B;QAEjD,KAAK,EAAE,CAAC;QAHW,aAAQ,GAAR,QAAQ,CAAsB;QAC9B,mBAAc,GAAd,cAAc,CAAgB;QAd3C,WAAM,GAAG;YACf,GAAG,EAAE,8CAA8C;YACnD,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,CAAC,KAAK,CAAC;YAChB,OAAO,EAAE,EAAE;SACd,CAAC;IAYF,CAAC;IAQD,KAAK,CAAC,OAAO,CAAC,MAA+B;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAOO,cAAc;QAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAQO,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAE/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACtD,CAAC;CACJ;AAhED,sDAgEC"}
@@ -0,0 +1,9 @@
1
+ import { ProcessCommonData } from '../../accessUtility/libraries/process.common.data';
2
+ import { CustomFieldService } from '../services/custom.field.service';
3
+ import { AccessBusinessEntity } from '../entities/access.business.entity';
4
+ export declare class ProcessCommonCustomField extends ProcessCommonData {
5
+ protected payload: any;
6
+ protected readonly customFieldService: CustomFieldService;
7
+ protected readonly business: AccessBusinessEntity;
8
+ protected validateCustomFields(type: number): Promise<void>;
9
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessCommonCustomField = void 0;
4
+ const process_common_data_1 = require("../../accessUtility/libraries/process.common.data");
5
+ const validate_custom_field_data_1 = require("./validate.custom.field.data");
6
+ class ProcessCommonCustomField extends process_common_data_1.ProcessCommonData {
7
+ async validateCustomFields(type) {
8
+ if (!this.payload.custom_field_data)
9
+ return;
10
+ const fields = await this.customFieldService.getCustomFields(this.business.id, type);
11
+ this.payload.custom_field_data = await new validate_custom_field_data_1.ValidateCustomFieldData(fields).process(this.payload.custom_field_data);
12
+ }
13
+ }
14
+ exports.ProcessCommonCustomField = ProcessCommonCustomField;
15
+ //# sourceMappingURL=process.common.custom.field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.common.custom.field.js","sourceRoot":"","sources":["../../../src/access/libraries/process.common.custom.field.ts"],"names":[],"mappings":";;;AAAA,2FAAsF;AAGtF,6EAAuE;AAEvE,MAAa,wBAAyB,SAAQ,uCAAiB;IAMjD,KAAK,CAAC,oBAAoB,CAAC,IAAY;QAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB;YAAE,OAAO;QAE5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAErF,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,MAAM,IAAI,oDAAuB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACvH,CAAC;CACJ;AAbD,4DAaC"}
@@ -0,0 +1,14 @@
1
+ import { ProcessCommonData } from '../../accessUtility/libraries/process.common.data';
2
+ import { AddCustomFieldDto } from '../dtos/add.custom.field.dto';
3
+ import { AccessBusinessEntity } from '../entities/access.business.entity';
4
+ import { CustomFieldEntity } from '../entities/custom.field.entity';
5
+ export declare class ProcessCustomFieldCreation extends ProcessCommonData {
6
+ protected readonly business: AccessBusinessEntity;
7
+ protected payload: AddCustomFieldDto;
8
+ constructor(business: AccessBusinessEntity);
9
+ process(payload: AddCustomFieldDto): Promise<CustomFieldEntity>;
10
+ private validate;
11
+ private set;
12
+ private validateChoice;
13
+ private validateIdentifier;
14
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessCustomFieldCreation = void 0;
4
+ const process_common_data_1 = require("../../accessUtility/libraries/process.common.data");
5
+ const custom_field_entity_1 = require("../entities/custom.field.entity");
6
+ const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
7
+ const custom_column_type_enum_1 = require("../enums/custom.column.type.enum");
8
+ class ProcessCustomFieldCreation extends process_common_data_1.ProcessCommonData {
9
+ constructor(business) {
10
+ super();
11
+ this.business = business;
12
+ }
13
+ async process(payload) {
14
+ this.payload = payload;
15
+ await this.validate();
16
+ return this.set(payload);
17
+ }
18
+ async validate() {
19
+ await this.validateChoice();
20
+ await this.validateIdentifier();
21
+ this.throwExceptionOnError();
22
+ }
23
+ async set(body) {
24
+ let r = custom_field_entity_1.CustomFieldEntity.create({
25
+ business_id: this.business.id,
26
+ type_id: body.type_id,
27
+ choice_type_id: body.choice_type_id,
28
+ column_type_id: body.column_type_id,
29
+ });
30
+ if (body.id)
31
+ r = await custom_field_entity_1.CustomFieldEntity.findOne({ where: { id: body.id } });
32
+ if (r?.business_id !== this.business.id)
33
+ throw new nestjs_utility_services_1.AccessException();
34
+ if (!body.id)
35
+ r.identifier = body.name
36
+ .toLowerCase()
37
+ .replace(/[^a-z0-9]/g, '')
38
+ .replaceAll(' ', '_');
39
+ r.name = body.name;
40
+ r.priority = body.priority;
41
+ if ([custom_column_type_enum_1.CustomColumnTypeEnum.CHOICELIST, custom_column_type_enum_1.CustomColumnTypeEnum.DATE, custom_column_type_enum_1.CustomColumnTypeEnum.DATETIME])
42
+ r.default_value = body.default_value;
43
+ else
44
+ r.default_value = null;
45
+ return r.save();
46
+ }
47
+ async validateChoice() {
48
+ if (this.payload.id)
49
+ return;
50
+ if (this.payload.column_type_id === custom_column_type_enum_1.CustomColumnTypeEnum.CHOICELIST && !this.payload.choice_type_id)
51
+ return this.setColumnError('choice_type_id', `choice type field cannot be empty`);
52
+ }
53
+ async validateIdentifier() {
54
+ if (this.payload.id)
55
+ return;
56
+ const identifier = this.payload.name
57
+ .toLowerCase()
58
+ .replace(/[^a-z0-9]/g, '')
59
+ .replaceAll(' ', '_');
60
+ const r = await custom_field_entity_1.CustomFieldEntity.findOne({
61
+ where: {
62
+ business_id: this.business.id,
63
+ type_id: this.payload.type_id,
64
+ identifier,
65
+ },
66
+ });
67
+ if (r)
68
+ return this.setColumnError('name', `There is already a column with similar name`);
69
+ }
70
+ }
71
+ exports.ProcessCustomFieldCreation = ProcessCustomFieldCreation;
72
+ //# sourceMappingURL=process.custom.field.creation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.custom.field.creation.js","sourceRoot":"","sources":["../../../src/access/libraries/process.custom.field.creation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { CustomFieldListFilterDto } from '../dtos/custom.field.list.filter.dto';
2
+ import { ListResponseDto } from '../dtos/list.response.dto';
3
+ import { AccessBusinessEntity } from '../entities/access.business.entity';
4
+ import { ListingService } from '../services/listing.service';
5
+ import { ProcessCommonList } from './process.common.list';
6
+ export declare class ProcessCustomFieldList extends ProcessCommonList {
7
+ protected readonly business: AccessBusinessEntity;
8
+ protected readonly listingService: ListingService;
9
+ protected filter: CustomFieldListFilterDto;
10
+ protected config: {
11
+ sql: string;
12
+ order: string;
13
+ columns: string[];
14
+ metrics: any[];
15
+ };
16
+ constructor(business: AccessBusinessEntity, listingService: ListingService);
17
+ process(filter: CustomFieldListFilterDto): Promise<ListResponseDto>;
18
+ private processFilters;
19
+ private search;
20
+ private filterType;
21
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessCustomFieldList = void 0;
4
+ const process_common_list_1 = require("./process.common.list");
5
+ class ProcessCustomFieldList extends process_common_list_1.ProcessCommonList {
6
+ constructor(business, listingService) {
7
+ super();
8
+ this.business = business;
9
+ this.listingService = listingService;
10
+ this.config = {
11
+ sql: `bz_custom_fields a left join sys_lookup_values b on a.type_id = b.id left join sys_lookup_values c on a.column_type_id = c.id left join bz_choice_types d on a.choice_type_id = d.id where a.deleted_at is null`,
12
+ order: 'sq.name asc',
13
+ columns: ['a.*', 'b.name type', 'c.name column_type', 'd.name choice_type'],
14
+ metrics: [],
15
+ };
16
+ }
17
+ async process(filter) {
18
+ this.filter = filter;
19
+ this.processFilters();
20
+ return this.handle();
21
+ }
22
+ processFilters() {
23
+ this.restrictions.push(`a.business_id = ${this.business.id}`);
24
+ this.filterActive();
25
+ this.search();
26
+ this.filterType();
27
+ }
28
+ search() {
29
+ if (!this.filter.search)
30
+ return;
31
+ const str = this.filter.search;
32
+ this.restrictions.push(`a.name ilike '%${str}%'`);
33
+ }
34
+ filterType() {
35
+ if (!this.filter.type_id)
36
+ return;
37
+ this.restrictions.push(`a.type_id = ${this.filter.type_id}`);
38
+ }
39
+ }
40
+ exports.ProcessCustomFieldList = ProcessCustomFieldList;
41
+ //# sourceMappingURL=process.custom.field.list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.custom.field.list.js","sourceRoot":"","sources":["../../../src/access/libraries/process.custom.field.list.ts"],"names":[],"mappings":";;;AAIA,+DAA0D;AAO1D,MAAa,sBAAuB,SAAQ,uCAAiB;IAqBzD,YACuB,QAA8B,EAC9B,cAA8B;QAEjD,KAAK,EAAE,CAAC;QAHW,aAAQ,GAAR,QAAQ,CAAsB;QAC9B,mBAAc,GAAd,cAAc,CAAgB;QAd3C,WAAM,GAAG;YACf,GAAG,EAAE,iNAAiN;YACtN,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,CAAC;YAC3E,OAAO,EAAE,EAAE;SACd,CAAC;IAYF,CAAC;IAQD,KAAK,CAAC,OAAO,CAAC,MAAgC;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAOO,cAAc;QAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAQO,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAE/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACtD,CAAC;IAEO,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QAEjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;CACJ;AAvED,wDAuEC"}
@@ -0,0 +1,15 @@
1
+ import { ProcessCommonData } from '../../accessUtility/libraries/process.common.data';
2
+ import { CustomFieldEntity } from '../entities/custom.field.entity';
3
+ export declare class ValidateCustomFieldData extends ProcessCommonData {
4
+ private readonly fields;
5
+ private data;
6
+ constructor(fields: CustomFieldEntity[]);
7
+ process(data: any): Promise<any>;
8
+ validate(): Promise<any>;
9
+ private validateKey;
10
+ private validateValue;
11
+ private validateNumber;
12
+ private validateBoolean;
13
+ private validateDate;
14
+ private validateList;
15
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValidateCustomFieldData = void 0;
4
+ const process_common_data_1 = require("../../accessUtility/libraries/process.common.data");
5
+ const choice_list_entity_1 = require("../entities/choice.list.entity");
6
+ const custom_column_type_enum_1 = require("../enums/custom.column.type.enum");
7
+ class ValidateCustomFieldData extends process_common_data_1.ProcessCommonData {
8
+ constructor(fields) {
9
+ super();
10
+ this.fields = fields;
11
+ }
12
+ async process(data) {
13
+ this.data = data;
14
+ await this.validate();
15
+ this.throwExceptionOnError();
16
+ return this.data;
17
+ }
18
+ async validate() {
19
+ const promises = [];
20
+ for (const [key, value] of Object.entries(this.data)) {
21
+ promises.push(this.validateKey(key, value));
22
+ }
23
+ return Promise.all(promises).then((res) => {
24
+ return this.data;
25
+ });
26
+ }
27
+ async validateKey(key, value) {
28
+ const field = this.fields.filter((item) => {
29
+ return item.identifier === key;
30
+ });
31
+ if (!field.length)
32
+ delete this.data[key];
33
+ await this.validateValue(field[0], value);
34
+ }
35
+ async validateValue(field, value) {
36
+ if (value === null)
37
+ return;
38
+ if (typeof value === 'undefined')
39
+ return;
40
+ if (field.column_type_id === custom_column_type_enum_1.CustomColumnTypeEnum.NUMBER)
41
+ return this.validateNumber(field, value);
42
+ if (field.column_type_id === custom_column_type_enum_1.CustomColumnTypeEnum.CHOICELIST)
43
+ return this.validateList(field, value);
44
+ if (field.column_type_id === custom_column_type_enum_1.CustomColumnTypeEnum.BOOLEAN)
45
+ return this.validateBoolean(field, value);
46
+ if (field.column_type_id === custom_column_type_enum_1.CustomColumnTypeEnum.DATE)
47
+ return this.validateDate(field, value);
48
+ if (field.column_type_id === custom_column_type_enum_1.CustomColumnTypeEnum.DATETIME)
49
+ return this.validateDate(field, value);
50
+ }
51
+ async validateNumber(field, value) {
52
+ if (isNaN(value))
53
+ return this.setColumnError(`custom_field_data.${field.identifier}`, `The field is not a number`);
54
+ }
55
+ async validateBoolean(field, value) {
56
+ if (typeof value !== 'boolean')
57
+ return this.setColumnError(`custom_field_data.${field.identifier}`, `The field should be either true or false`);
58
+ }
59
+ async validateDate(field, value) {
60
+ const d = new Date(value);
61
+ if (d.toString() === 'Invalid Date')
62
+ return this.setColumnError(`custom_field_data.${field.identifier}`, `The field should be a date column`);
63
+ }
64
+ async validateList(field, value) {
65
+ if (isNaN(value))
66
+ return this.setColumnError(`custom_field_data.${field.identifier}`, `The field is not a number`);
67
+ const r = await choice_list_entity_1.ChoiceListEntity.findOne({ where: { id: +value, type_id: field.choice_type_id } });
68
+ if (!r)
69
+ return this.setColumnError(`custom_field_data.${field.identifier}`, `The field does not match with choice list option`);
70
+ }
71
+ }
72
+ exports.ValidateCustomFieldData = ValidateCustomFieldData;
73
+ //# sourceMappingURL=validate.custom.field.data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.custom.field.data.js","sourceRoot":"","sources":["../../../src/access/libraries/validate.custom.field.data.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
+ import { AccessService } from '@servicelabsco/nestjs-utility-services';
1
2
  import { AccessBusinessEntity } from '../entities/access.business.entity';
2
3
  export declare class AccessBusinessService {
4
+ private readonly accessService;
5
+ constructor(accessService: AccessService);
3
6
  validateAccess(): Promise<AccessBusinessEntity>;
7
+ hasRoles(roles: string[]): Promise<AccessBusinessEntity>;
8
+ validateRoles(roles: string[]): Promise<void>;
4
9
  }
@@ -5,12 +5,18 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
8
11
  Object.defineProperty(exports, "__esModule", { value: true });
9
12
  exports.AccessBusinessService = void 0;
10
13
  const common_1 = require("@nestjs/common");
11
14
  const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
12
15
  const access_business_entity_1 = require("../entities/access.business.entity");
13
16
  let AccessBusinessService = class AccessBusinessService {
17
+ constructor(accessService) {
18
+ this.accessService = accessService;
19
+ }
14
20
  async validateAccess() {
15
21
  const user = nestjs_utility_services_1.Auth.user();
16
22
  const businessId = user?.auth_attributes?.business_id;
@@ -21,9 +27,22 @@ let AccessBusinessService = class AccessBusinessService {
21
27
  throw new nestjs_utility_services_1.AccessException();
22
28
  return business;
23
29
  }
30
+ async hasRoles(roles) {
31
+ const business = await this.validateAccess();
32
+ if (roles?.length > 0) {
33
+ await this.validateRoles(roles);
34
+ }
35
+ return business;
36
+ }
37
+ async validateRoles(roles) {
38
+ const hasRole = await this.accessService.hasRoleIdentifiers(roles);
39
+ if (!hasRole)
40
+ throw new nestjs_utility_services_1.AccessException(`You don't have appropriate role to do this operation`);
41
+ }
24
42
  };
25
43
  exports.AccessBusinessService = AccessBusinessService;
26
44
  exports.AccessBusinessService = AccessBusinessService = __decorate([
27
- (0, common_1.Injectable)()
45
+ (0, common_1.Injectable)(),
46
+ __metadata("design:paramtypes", [nestjs_utility_services_1.AccessService])
28
47
  ], AccessBusinessService);
29
48
  //# sourceMappingURL=access.business.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"access.business.service.js","sourceRoot":"","sources":["../../../src/access/services/access.business.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,oFAA+E;AAC/E,+EAA0E;AAGnE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAC9B,KAAK,CAAC,cAAc;QAChB,MAAM,IAAI,GAAG,8BAAI,CAAC,IAAI,EAAE,CAAC;QAEzB,MAAM,UAAU,GAAG,IAAI,EAAE,eAAe,EAAE,WAAW,CAAC;QACtD,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,yCAAe,EAAE,CAAC;QAE7C,MAAM,QAAQ,GAAG,MAAM,6CAAoB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,yCAAe,EAAE,CAAC;QAE3C,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAA;AAZY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;GACA,qBAAqB,CAYjC"}
1
+ {"version":3,"file":"access.business.service.js","sourceRoot":"","sources":["../../../src/access/services/access.business.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,oFAA8F;AAC9F,+EAA0E;AAGnE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAC9B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,KAAK,CAAC,cAAc;QAChB,MAAM,IAAI,GAAG,8BAAI,CAAC,IAAI,EAAE,CAAC;QAEzB,MAAM,UAAU,GAAG,IAAI,EAAE,eAAe,EAAE,WAAW,CAAC;QACtD,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,yCAAe,EAAE,CAAC;QAE7C,MAAM,QAAQ,GAAG,MAAM,6CAAoB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,yCAAe,EAAE,CAAC;QAE3C,OAAO,QAAQ,CAAC;IACpB,CAAC;IAQD,KAAK,CAAC,QAAQ,CAAC,KAAe;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE7C,IAAI,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IASD,KAAK,CAAC,aAAa,CAAC,KAAe;QAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEnE,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,yCAAe,CAAC,sDAAsD,CAAC,CAAC;IACpG,CAAC;CACJ,CAAA;AA3CY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;qCAEmC,uCAAa;GADhD,qBAAqB,CA2CjC"}
@@ -0,0 +1,6 @@
1
+ import { AuditService } from '@servicelabsco/nestjs-utility-services';
2
+ export declare class AuditLogService {
3
+ private readonly auditService;
4
+ constructor(auditService: AuditService);
5
+ getData(SourceHash: string, id: number): Promise<any[]>;
6
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AuditLogService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
15
+ let AuditLogService = class AuditLogService {
16
+ constructor(auditService) {
17
+ this.auditService = auditService;
18
+ }
19
+ async getData(SourceHash, id) {
20
+ return this.auditService.getSourceAuditLogs(SourceHash, id);
21
+ }
22
+ };
23
+ exports.AuditLogService = AuditLogService;
24
+ exports.AuditLogService = AuditLogService = __decorate([
25
+ (0, common_1.Injectable)(),
26
+ __metadata("design:paramtypes", [nestjs_utility_services_1.AuditService])
27
+ ], AuditLogService);
28
+ //# sourceMappingURL=audit.log.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.log.service.js","sourceRoot":"","sources":["../../../src/access/services/audit.log.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,oFAAsE;AAG/D,IAAM,eAAe,GAArB,MAAM,eAAe;IACxB,YAA6B,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAE3D,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,EAAU;QACxC,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC;CACJ,CAAA;AANY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAEkC,sCAAY;GAD9C,eAAe,CAM3B"}
@@ -0,0 +1,12 @@
1
+ import { CustomFieldEntity } from '../entities/custom.field.entity';
2
+ export declare class CustomFieldService {
3
+ getRecordData(record: any, type: number, businessId?: number): Promise<any>;
4
+ getCustomFieldData(fields: CustomFieldEntity[], type: number, data: any): Promise<{}>;
5
+ getSqlCustomData(businessId: number, alias: string, typeId: number): Promise<{
6
+ columns: any[];
7
+ tables: any[];
8
+ }>;
9
+ getCustomFields(businessId: number, typeId: number): Promise<CustomFieldEntity[]>;
10
+ private getValue;
11
+ private getChoiceListValue;
12
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CustomFieldService = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
12
+ const custom_field_entity_1 = require("../entities/custom.field.entity");
13
+ const custom_column_type_enum_1 = require("../enums/custom.column.type.enum");
14
+ const choice_list_entity_1 = require("../entities/choice.list.entity");
15
+ let CustomFieldService = class CustomFieldService {
16
+ async getRecordData(record, type, businessId) {
17
+ if (!record?.custom_field_data)
18
+ return record;
19
+ businessId = businessId || record.business_id;
20
+ const fields = await this.getCustomFields(businessId, type);
21
+ record.custom_field_data = await this.getCustomFieldData(fields, type, record.custom_field_data || {});
22
+ return record;
23
+ }
24
+ async getCustomFieldData(fields, type, data) {
25
+ const response = {};
26
+ for (const [key, value] of Object.entries(data)) {
27
+ response[key] = await this.getValue(fields, key, value);
28
+ }
29
+ return response;
30
+ }
31
+ async getSqlCustomData(businessId, alias, typeId) {
32
+ const fields = await this.getCustomFields(businessId, typeId);
33
+ let counter = 0;
34
+ const columns = [];
35
+ const tables = [];
36
+ for (const field of fields) {
37
+ if (field.column_type_id === custom_column_type_enum_1.CustomColumnTypeEnum.CHOICELIST) {
38
+ ++counter;
39
+ const choicelistAlias = `ch_${counter}`;
40
+ columns.push(`${choicelistAlias}.name cfd_${field.identifier}_name`);
41
+ tables.push(`bz_choice_lists ${choicelistAlias} on cast(${alias}.custom_field_data->>'${field.identifier}' as integer) = ${choicelistAlias}.id`);
42
+ }
43
+ }
44
+ return { columns, tables };
45
+ }
46
+ async getCustomFields(businessId, typeId) {
47
+ return custom_field_entity_1.CustomFieldEntity.find({ where: { business_id: businessId, type_id: typeId } });
48
+ }
49
+ async getValue(fields, key, value) {
50
+ const field = fields.filter((item) => {
51
+ return item.identifier === key;
52
+ });
53
+ if (!field.length)
54
+ return value;
55
+ const type = +field[0].column_type_id;
56
+ switch (type) {
57
+ case custom_column_type_enum_1.CustomColumnTypeEnum.NUMBER:
58
+ return +value;
59
+ case custom_column_type_enum_1.CustomColumnTypeEnum.CHOICELIST:
60
+ return await this.getChoiceListValue(+value);
61
+ default:
62
+ return value;
63
+ }
64
+ }
65
+ async getChoiceListValue(id) {
66
+ if (isNaN(id))
67
+ return;
68
+ const r = await choice_list_entity_1.ChoiceListEntity.first(id);
69
+ if (r)
70
+ return nestjs_utility_services_1.ClassMapper.removeWhoColumns(r);
71
+ return null;
72
+ }
73
+ };
74
+ exports.CustomFieldService = CustomFieldService;
75
+ exports.CustomFieldService = CustomFieldService = __decorate([
76
+ (0, common_1.Injectable)()
77
+ ], CustomFieldService);
78
+ //# sourceMappingURL=custom.field.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom.field.service.js","sourceRoot":"","sources":["../../../src/access/services/custom.field.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,oFAAqE;AACrE,yEAAoE;AACpE,8EAAwE;AACxE,uEAAkE;AAG3D,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC3B,KAAK,CAAC,aAAa,CAAC,MAAW,EAAE,IAAY,EAAE,UAAmB;QAC9D,IAAI,CAAC,MAAM,EAAE,iBAAiB;YAAE,OAAO,MAAM,CAAC;QAC9C,UAAU,GAAG,UAAU,IAAI,MAAM,CAAC,WAAW,CAAC;QAE9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAE5D,MAAM,CAAC,iBAAiB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAEvG,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAA2B,EAAE,IAAY,EAAE,IAAS;QACzE,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,UAAkB,EAAE,KAAa,EAAE,MAAc;QACpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAE9D,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,cAAc,KAAK,8CAAoB,CAAC,UAAU,EAAE,CAAC;gBAC3D,EAAE,OAAO,CAAC;gBAEV,MAAM,eAAe,GAAG,MAAM,OAAO,EAAE,CAAC;gBAExC,OAAO,CAAC,IAAI,CAAC,GAAG,eAAe,aAAa,KAAK,CAAC,UAAU,OAAO,CAAC,CAAC;gBACrE,MAAM,CAAC,IAAI,CACP,mBAAmB,eAAe,YAAY,KAAK,yBAAyB,KAAK,CAAC,UAAU,mBAAmB,eAAe,KAAK,CACtI,CAAC;YACN,CAAC;QACL,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,UAAkB,EAAE,MAAc;QACpD,OAAO,uCAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3F,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,MAA2B,EAAE,GAAW,EAAE,KAAU;QACvE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACjC,OAAO,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAEhC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QAEtC,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,8CAAoB,CAAC,MAAM;gBAC5B,OAAO,CAAC,KAAK,CAAC;YAClB,KAAK,8CAAoB,CAAC,UAAU;gBAChC,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC;YACjD;gBACI,OAAO,KAAK,CAAC;QACrB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,EAAU;QACvC,IAAI,KAAK,CAAC,EAAE,CAAC;YAAE,OAAO;QAEtB,MAAM,CAAC,GAAG,MAAM,qCAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC;YAAE,OAAO,qCAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;AA7EY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;GACA,kBAAkB,CA6E9B"}