@servicelabsco/slabs-access-manager 0.1.58 → 0.1.60

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 (85) hide show
  1. package/dist/access/access.module.js +2 -1
  2. package/dist/access/access.module.js.map +1 -1
  3. package/dist/access/controllers/bulk.upload.controller.d.ts +25 -0
  4. package/dist/access/controllers/bulk.upload.controller.js +141 -0
  5. package/dist/access/controllers/bulk.upload.controller.js.map +1 -0
  6. package/dist/access/controllers/bulk.upload.item.controller.d.ts +12 -0
  7. package/dist/access/controllers/bulk.upload.item.controller.js +63 -0
  8. package/dist/access/controllers/bulk.upload.item.controller.js.map +1 -0
  9. package/dist/access/controllers/choice.type.controller.js.map +1 -1
  10. package/dist/access/controllers/index.d.ts +2 -0
  11. package/dist/access/controllers/index.js +2 -0
  12. package/dist/access/controllers/index.js.map +1 -1
  13. package/dist/access/dtos/bulk.upload.item.list.filter.dto.d.ts +6 -0
  14. package/dist/access/dtos/bulk.upload.item.list.filter.dto.js +30 -0
  15. package/dist/access/dtos/bulk.upload.item.list.filter.dto.js.map +1 -0
  16. package/dist/access/dtos/bulk.upload.list.filter.dto.d.ts +4 -0
  17. package/dist/access/dtos/bulk.upload.list.filter.dto.js +25 -0
  18. package/dist/access/dtos/bulk.upload.list.filter.dto.js.map +1 -0
  19. package/dist/access/dtos/index.d.ts +2 -0
  20. package/dist/access/dtos/index.js +2 -0
  21. package/dist/access/dtos/index.js.map +1 -1
  22. package/dist/access/es6.classes.d.ts +8 -4
  23. package/dist/access/es6.classes.js +12 -0
  24. package/dist/access/es6.classes.js.map +1 -1
  25. package/dist/access/libraries/index.d.ts +2 -0
  26. package/dist/access/libraries/index.js +2 -0
  27. package/dist/access/libraries/index.js.map +1 -1
  28. package/dist/access/libraries/process.bulk.upload.item.list.d.ts +21 -0
  29. package/dist/access/libraries/process.bulk.upload.item.list.js +42 -0
  30. package/dist/access/libraries/process.bulk.upload.item.list.js.map +1 -0
  31. package/dist/access/libraries/process.bulk.upload.list.d.ts +21 -0
  32. package/dist/access/libraries/process.bulk.upload.list.js +40 -0
  33. package/dist/access/libraries/process.bulk.upload.list.js.map +1 -0
  34. package/dist/access/libraries/process.common.custom.field.d.ts +1 -1
  35. package/dist/access/libraries/process.common.custom.field.js.map +1 -1
  36. package/dist/access/libraries/process.custom.field.creation.d.ts +1 -1
  37. package/dist/access/libraries/process.custom.field.creation.js.map +1 -1
  38. package/dist/access/libraries/validate.custom.field.data.d.ts +1 -1
  39. package/dist/access/libraries/validate.custom.field.data.js.map +1 -1
  40. package/dist/accessUtility/dtos/bulk.upload.attributes.dto.d.ts +1 -0
  41. package/dist/accessUtility/dtos/bulk.upload.attributes.dto.js.map +1 -1
  42. package/dist/accessUtility/dtos/bulk.upload.item.attributes.dto.d.ts +2 -0
  43. package/dist/accessUtility/dtos/bulk.upload.item.attributes.dto.js.map +1 -1
  44. package/dist/accessUtility/dtos/document.file.upload.dto.d.ts +4 -0
  45. package/dist/accessUtility/dtos/document.file.upload.dto.js +27 -0
  46. package/dist/accessUtility/dtos/document.file.upload.dto.js.map +1 -0
  47. package/dist/accessUtility/dtos/index.d.ts +1 -0
  48. package/dist/accessUtility/dtos/index.js +1 -0
  49. package/dist/accessUtility/dtos/index.js.map +1 -1
  50. package/dist/accessUtility/es6.classes.d.ts +7 -2
  51. package/dist/accessUtility/es6.classes.js +9 -2
  52. package/dist/accessUtility/es6.classes.js.map +1 -1
  53. package/dist/accessUtility/jobs/bulk.upload.job.d.ts +8 -2
  54. package/dist/accessUtility/jobs/bulk.upload.job.js +40 -2
  55. package/dist/accessUtility/jobs/bulk.upload.job.js.map +1 -1
  56. package/dist/accessUtility/libraries/analyse.bulk.upload.d.ts +12 -0
  57. package/dist/accessUtility/libraries/analyse.bulk.upload.js +35 -0
  58. package/dist/accessUtility/libraries/analyse.bulk.upload.js.map +1 -0
  59. package/dist/accessUtility/libraries/generate.bulk.upload.sheet.d.ts +32 -0
  60. package/dist/accessUtility/libraries/generate.bulk.upload.sheet.js +211 -0
  61. package/dist/accessUtility/libraries/generate.bulk.upload.sheet.js.map +1 -0
  62. package/dist/accessUtility/libraries/index.d.ts +4 -0
  63. package/dist/accessUtility/libraries/index.js +4 -0
  64. package/dist/accessUtility/libraries/index.js.map +1 -1
  65. package/dist/accessUtility/libraries/read.xls.file.d.ts +24 -0
  66. package/dist/accessUtility/libraries/read.xls.file.js +149 -0
  67. package/dist/accessUtility/libraries/read.xls.file.js.map +1 -0
  68. package/dist/accessUtility/libraries/set.bulk.upload.log.file.d.ts +22 -0
  69. package/dist/accessUtility/libraries/set.bulk.upload.log.file.js +112 -0
  70. package/dist/accessUtility/libraries/set.bulk.upload.log.file.js.map +1 -0
  71. package/dist/accessUtility/services/bulk.upload.service.d.ts +9 -0
  72. package/dist/accessUtility/services/bulk.upload.service.js +53 -0
  73. package/dist/accessUtility/services/bulk.upload.service.js.map +1 -0
  74. package/dist/accessUtility/services/index.d.ts +1 -0
  75. package/dist/accessUtility/services/index.js +1 -0
  76. package/dist/accessUtility/services/index.js.map +1 -1
  77. package/dist/accessUtility/subscribers/bulk.upload.item.subscriber.d.ts +1 -0
  78. package/dist/accessUtility/subscribers/bulk.upload.item.subscriber.js +6 -0
  79. package/dist/accessUtility/subscribers/bulk.upload.item.subscriber.js.map +1 -1
  80. package/dist/migrations/{1681373004868-AddCustomFieldTypesDataSeederTable.d.ts → 1681369386555-AddCustomColumnTypesDataSeederTable.d.ts} +1 -1
  81. package/dist/migrations/1681369386555-AddCustomColumnTypesDataSeederTable.js +79 -0
  82. package/dist/migrations/1681369386555-AddCustomColumnTypesDataSeederTable.js.map +1 -0
  83. package/package.json +4 -2
  84. package/dist/migrations/1681373004868-AddCustomFieldTypesDataSeederTable.js +0 -107
  85. package/dist/migrations/1681373004868-AddCustomFieldTypesDataSeederTable.js.map +0 -1
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GenerateBulkUploadSheet = void 0;
4
+ const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
5
+ const bulk_upload_type_entity_1 = require("../entities/bulk.upload.type.entity");
6
+ const ExcelJS = require("exceljs");
7
+ const custom_field_entity_1 = require("../../access/entities/custom.field.entity");
8
+ const bulk_upload_column_entity_1 = require("../entities/bulk.upload.column.entity");
9
+ const choice_list_entity_1 = require("../../access/entities/choice.list.entity");
10
+ const choice_type_entity_1 = require("../../access/entities/choice.type.entity");
11
+ const SOURCEHASH = require("../../config/source.hash");
12
+ const bulk_definition_load_entity_1 = require("../entities/bulk.definition.load.entity");
13
+ class GenerateBulkUploadSheet {
14
+ constructor(uploadService, business) {
15
+ this.uploadService = uploadService;
16
+ this.business = business;
17
+ this.sheets = {};
18
+ this.choiceListTypes = [];
19
+ }
20
+ async process(id) {
21
+ this.init();
22
+ const items = await this.getBulkUploadTypes(id);
23
+ this.createSheets(items);
24
+ for (const item of items) {
25
+ await this.loadData(item);
26
+ }
27
+ const file = await this.getFile();
28
+ return { file };
29
+ }
30
+ createSheets(items) {
31
+ this.sheets['info'] = this.workbook.addWorksheet('info');
32
+ items.forEach((item) => {
33
+ this.sheets[item.name] = this.workbook.addWorksheet(item.name);
34
+ });
35
+ }
36
+ init() {
37
+ this.workbook = new ExcelJS.Workbook();
38
+ }
39
+ async loadData(item) {
40
+ const worksheet = this.sheets[item.name];
41
+ const metadata = await this.getColumns(item.source_type);
42
+ let data = [];
43
+ if (!item.attributes?.no_data)
44
+ data = await this.getData(metadata.type);
45
+ await this.writeToWorksheet(worksheet, metadata, data);
46
+ }
47
+ async setHeader(worksheet, metadata) {
48
+ worksheet.getCell('A1').value = 'SN';
49
+ let i = 1;
50
+ for (const column of metadata.columns || []) {
51
+ const cell = this.getCell(1, i);
52
+ worksheet.getCell(cell).value = column.name;
53
+ await this.setHeaderValidation(worksheet, i, column);
54
+ ++i;
55
+ }
56
+ if (!metadata.customColumns)
57
+ return;
58
+ for (const column of metadata.customColumns || []) {
59
+ const cell = this.getCell(1, i);
60
+ worksheet.getCell(cell).value = column.name;
61
+ if (column.choice_type_id) {
62
+ await this.setListValidation(worksheet, i, column.choice_type_id);
63
+ }
64
+ ++i;
65
+ }
66
+ worksheet.views = [{ state: 'frozen', xSplit: 0, ySplit: 1 }];
67
+ }
68
+ async setHeaderValidation(worksheet, index, column) {
69
+ if (!column.reference_column_id)
70
+ return;
71
+ const columnPrefix = this.getColumnPrefix(index);
72
+ const sheet = column.reference_column.bulk_type.name.toLowerCase();
73
+ const refIndex = this.getColumnPrefix(column.reference_column.priority);
74
+ this.setValidation(worksheet, columnPrefix, sheet, refIndex);
75
+ }
76
+ getCell(row, i) {
77
+ const str = this.getColumnPrefix(i);
78
+ return `${str}${row}`;
79
+ }
80
+ getColumnPrefix(i, pre) {
81
+ let prefix = '';
82
+ if (pre)
83
+ prefix = this.getColumnPrefix(pre - 1);
84
+ const quotient = Math.floor(i / 26);
85
+ const fraction = i % 26;
86
+ if (quotient)
87
+ return this.getColumnPrefix(fraction, quotient);
88
+ const str = String.fromCharCode(65 + fraction);
89
+ return `${prefix}${str}`;
90
+ }
91
+ async getColumns(source_type) {
92
+ const type = await bulk_upload_type_entity_1.BulkUploadTypeEntity.findOne({ where: { source_type } });
93
+ const columns = await bulk_upload_column_entity_1.BulkUploadColumnEntity.find({
94
+ where: { bulk_type_id: type.id },
95
+ order: { priority: 'asc' },
96
+ relations: ['column_type', 'reference_column', 'reference_column.bulk_type'],
97
+ });
98
+ let customColumns;
99
+ if (type.custom_field_id)
100
+ customColumns = await custom_field_entity_1.CustomFieldEntity.find({
101
+ where: { business_id: this.business.id, type_id: type.custom_field_id, active: true },
102
+ order: { priority: 'ASC' },
103
+ });
104
+ return { type, columns, customColumns };
105
+ }
106
+ async getData(type) {
107
+ const entity = nestjs_utility_services_1.PlatformUtility.getEntity(type.source_type);
108
+ const relations = this.getRelations(type.relations);
109
+ let where = {};
110
+ if (!type?.attributes?.is_global)
111
+ where.business_id = this.business.id;
112
+ if (type?.attributes?.where)
113
+ where = { ...where, ...type?.attributes?.where };
114
+ return entity.find({ where, relations, order: { id: 'ASC' } });
115
+ }
116
+ getRelations(relations) {
117
+ return relations ? relations.split(',') : [];
118
+ }
119
+ getDBValue(record, column) {
120
+ const items = column.split('.');
121
+ let data = record;
122
+ items.forEach((item) => {
123
+ if (!data)
124
+ return;
125
+ data = data[item];
126
+ });
127
+ return data;
128
+ }
129
+ async getCustomFieldValue(record, customField) {
130
+ await this.createChoiceListSheet(customField.choice_type_id);
131
+ if (customField.choice_type_id)
132
+ return this.getChoiceValue(record.custom_field_data[customField.identifier]);
133
+ return record.custom_field_data?.[customField?.identifier] || '';
134
+ }
135
+ async getChoiceValue(id) {
136
+ if (!id)
137
+ return;
138
+ const r = await choice_list_entity_1.ChoiceListEntity.first(id);
139
+ return r.name;
140
+ }
141
+ async getFile() {
142
+ const buffer = await this.workbook.xlsx.writeBuffer();
143
+ const originalname = `i-${this.business.identifier}-${nestjs_utility_services_1.PlatformUtility.generateRandomAlphaNumeric(6).toLowerCase()}-${nestjs_utility_services_1.DateUtil.getDateInFormat()}.xlsx`;
144
+ return this.uploadService.upload({ buffer, originalname }, { folder: 'public/bulk' });
145
+ }
146
+ async createChoiceListSheet(id) {
147
+ if (!id)
148
+ return;
149
+ if (this.choiceListTypes.includes(id))
150
+ return;
151
+ this.choiceListTypes.push(id);
152
+ const type = await choice_type_entity_1.ChoiceTypeEntity.first(id);
153
+ const worksheet = this.workbook.addWorksheet(`c-${type.name.toLowerCase()}`);
154
+ const metadata = await this.getColumns(SOURCEHASH.choiceList);
155
+ const data = await choice_list_entity_1.ChoiceListEntity.find({ where: { type_id: id, active: true }, order: { name: 'asc' } });
156
+ await this.writeToWorksheet(worksheet, metadata, data);
157
+ }
158
+ async writeToWorksheet(worksheet, metadata, data) {
159
+ await this.setHeader(worksheet, metadata);
160
+ let row = 2;
161
+ for (const item of data) {
162
+ worksheet.getCell(`A${row}`).value = row - 1;
163
+ let counter = 0;
164
+ for (const column of metadata.columns || []) {
165
+ ++counter;
166
+ const value = this.getDBValue(item, column.reference_field);
167
+ const cell = this.getCell(row, counter);
168
+ worksheet.getCell(cell).value = value;
169
+ }
170
+ if (metadata.customColumns) {
171
+ for (const column of metadata.customColumns) {
172
+ ++counter;
173
+ const value = await this.getCustomFieldValue(item, column);
174
+ const cell = this.getCell(row, counter);
175
+ worksheet.getCell(cell).value = value;
176
+ }
177
+ }
178
+ ++row;
179
+ }
180
+ }
181
+ async setListValidation(worksheet, index, typeId) {
182
+ const type = await choice_type_entity_1.ChoiceTypeEntity.first(typeId);
183
+ const columnPrefix = this.getColumnPrefix(index);
184
+ this.setValidation(worksheet, columnPrefix, `c-${type.name.toLowerCase()}`, 'C');
185
+ }
186
+ setValidation(worksheet, sourceColumn, sheet, destinationColumn) {
187
+ worksheet.dataValidations.add(`${sourceColumn}2:${sourceColumn}9999`, {
188
+ type: 'list',
189
+ allowBlank: true,
190
+ formulae: [`'${sheet}'!$${destinationColumn}$2:$${destinationColumn}$600`],
191
+ showErrorMessage: true,
192
+ errorStyle: 'error',
193
+ });
194
+ }
195
+ async getBulkUploadTypes(typeId) {
196
+ const loads = await bulk_definition_load_entity_1.BulkDefinitionLoadEntity.find({
197
+ where: { definition_id: typeId, active: true },
198
+ relations: ['type'],
199
+ order: { priority: 'ASC' },
200
+ });
201
+ const items = [];
202
+ for (const load of loads) {
203
+ const type = load.type;
204
+ type.name = type.name.toLowerCase();
205
+ items.push(type);
206
+ }
207
+ return items;
208
+ }
209
+ }
210
+ exports.GenerateBulkUploadSheet = GenerateBulkUploadSheet;
211
+ //# sourceMappingURL=generate.bulk.upload.sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.bulk.upload.sheet.js","sourceRoot":"","sources":["../../../src/accessUtility/libraries/generate.bulk.upload.sheet.ts"],"names":[],"mappings":"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"}
@@ -1 +1,5 @@
1
+ export * from './analyse.bulk.upload';
2
+ export * from './generate.bulk.upload.sheet';
1
3
  export * from './process.common.data';
4
+ export * from './read.xls.file';
5
+ export * from './set.bulk.upload.log.file';
@@ -14,5 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./analyse.bulk.upload"), exports);
18
+ __exportStar(require("./generate.bulk.upload.sheet"), exports);
17
19
  __exportStar(require("./process.common.data"), exports);
20
+ __exportStar(require("./read.xls.file"), exports);
21
+ __exportStar(require("./set.bulk.upload.log.file"), exports);
18
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/accessUtility/libraries/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/accessUtility/libraries/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AAAA,+DAA6C;AAAA,wDAAsC;AAAA,kDAAgC;AAAA,6DAA0C"}
@@ -0,0 +1,24 @@
1
+ import { UploadService } from '@servicelabsco/nestjs-utility-services';
2
+ import { BulkUploadEntity } from '../entities/bulk.upload.entity';
3
+ import { BulkUploadTypeEntity } from '../entities/bulk.upload.type.entity';
4
+ export declare class ReadXlsFile {
5
+ protected upload: BulkUploadEntity;
6
+ protected readonly uploadService: UploadService;
7
+ protected workbook: any;
8
+ private promises;
9
+ protected handle(types: BulkUploadTypeEntity[]): Promise<void | BulkUploadEntity>;
10
+ private processXls;
11
+ private processCsv;
12
+ private getDictionaryOfType;
13
+ private excelInit;
14
+ private readWorksheet;
15
+ private readAllSheets;
16
+ private readCsv;
17
+ private processRow;
18
+ private castValue;
19
+ private getDictionary;
20
+ private mapHeader;
21
+ private getStringValue;
22
+ private getNumberValue;
23
+ private getBooleanValue;
24
+ }
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReadXlsFile = void 0;
4
+ const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
5
+ const path_1 = require("path");
6
+ const fs_1 = require("fs");
7
+ const ExcelJS = require("exceljs");
8
+ const csv = require("csv-parser");
9
+ const bulk_upload_item_entity_1 = require("../entities/bulk.upload.item.entity");
10
+ class ReadXlsFile {
11
+ constructor() {
12
+ this.promises = [];
13
+ }
14
+ async handle(types) {
15
+ const extension = this.upload.file_url.split('.').pop().toLowerCase();
16
+ if (extension === 'csv')
17
+ return this.processCsv(types);
18
+ if (extension === 'xlsx')
19
+ return this.processXls(types);
20
+ this.upload.attributes = { ...this.upload.attributes, error: 'cannot parse file. Invalid extension' };
21
+ return this.upload.save();
22
+ }
23
+ async processXls(types) {
24
+ await this.excelInit();
25
+ if (!types.length)
26
+ return this.readAllSheets();
27
+ for (const type of types) {
28
+ const d = this.getDictionaryOfType(type);
29
+ await this.readWorksheet(d.sheetName, d.columns);
30
+ }
31
+ }
32
+ async processCsv(types) {
33
+ const d = this.getDictionaryOfType(types[0]);
34
+ const buffer = await this.uploadService.getBufferFromUrl(this.upload.file_url);
35
+ const tempPath = (0, path_1.join)(__dirname, `../../../tmp/${this.upload.uuid}.${nestjs_utility_services_1.PlatformUtility.generateRandomAlpha(6).toLowerCase()}.${d.sheetName}.csv`);
36
+ (0, fs_1.writeFileSync)(tempPath, buffer);
37
+ await this.readCsv(tempPath, d?.sheetName, d?.columns);
38
+ return (0, fs_1.unlink)(tempPath, () => { });
39
+ }
40
+ getDictionaryOfType(type) {
41
+ const columns = this.getDictionary(type?.columns);
42
+ const sheetName = type?.name || 'sheet 1';
43
+ return { columns, sheetName };
44
+ }
45
+ async excelInit() {
46
+ this.workbook = new ExcelJS.Workbook();
47
+ const buffer = await this.uploadService.getBufferFromUrl(this.upload.file_url);
48
+ await this.workbook.xlsx.load(buffer);
49
+ }
50
+ async readWorksheet(sheet, columns = {}) {
51
+ const tempPath = (0, path_1.join)(__dirname, `../../../tmp/${this.upload.uuid}.${nestjs_utility_services_1.PlatformUtility.generateRandomAlpha(6).toLowerCase()}.${sheet}.csv`);
52
+ const writeStream = (0, fs_1.createWriteStream)(tempPath);
53
+ await this.workbook.csv.write(writeStream, { sheetName: sheet });
54
+ await this.readCsv(tempPath, sheet, columns);
55
+ return (0, fs_1.unlink)(tempPath, () => { });
56
+ }
57
+ async readAllSheets() {
58
+ for (let i = 1; i < 100; ++i) {
59
+ const worksheet = this.workbook.getWorksheet(i);
60
+ const sheet = worksheet?.name;
61
+ if (!sheet)
62
+ continue;
63
+ await this.readWorksheet(sheet, {});
64
+ }
65
+ }
66
+ async readCsv(tempPath, sheet, columns) {
67
+ const fn = this;
68
+ let rowNumber = 0;
69
+ return new Promise((resolve, reject) => {
70
+ this.promises = [];
71
+ (0, fs_1.createReadStream)(tempPath)
72
+ .pipe(csv({
73
+ mapHeaders: ({ header, index }) => fn.mapHeader(header, columns?.headers),
74
+ mapValues: ({ header, index, value }) => fn.castValue(columns, header, value),
75
+ }))
76
+ .on('data', (data) => {
77
+ ++rowNumber;
78
+ fn.promises.push(fn.processRow(sheet, rowNumber, data));
79
+ })
80
+ .on('end', () => {
81
+ resolve(rowNumber);
82
+ });
83
+ });
84
+ }
85
+ async processRow(sheet, rowNumber, record) {
86
+ const r = await bulk_upload_item_entity_1.BulkUploadItemEntity.firstOrNew({ bulk_upload_id: this.upload.id, sheet, row_num: rowNumber });
87
+ r.data = record;
88
+ await r.save();
89
+ }
90
+ castValue(columns = {}, header, value) {
91
+ if (!Object.keys(columns).length)
92
+ return this.getStringValue(value);
93
+ if (columns.stringColumns.includes(header))
94
+ return this.getStringValue(value);
95
+ if (columns.numberColumns.includes(header))
96
+ return this.getNumberValue(value);
97
+ if (columns.booleanColumns.includes(header))
98
+ return this.getBooleanValue(value);
99
+ return this.getStringValue(value);
100
+ }
101
+ getDictionary(columns) {
102
+ const headers = {};
103
+ const stringColumns = [];
104
+ const numberColumns = [];
105
+ const booleanColumns = [];
106
+ columns.forEach((column) => {
107
+ const header = column.identifier;
108
+ headers[column.name] = header;
109
+ if (column.column_type_id === 1)
110
+ stringColumns.push(header);
111
+ if (column.column_type_id === 2)
112
+ numberColumns.push(header);
113
+ if (column.column_type_id === 5)
114
+ booleanColumns.push(header);
115
+ });
116
+ return { headers, stringColumns, numberColumns, booleanColumns };
117
+ }
118
+ mapHeader(header, headers = []) {
119
+ let str = header.replace(/[^a-zA-Z0-9 ]/g, '');
120
+ str = str.trim().replaceAll(' ', '_');
121
+ return headers[str] || str.toLowerCase();
122
+ }
123
+ getStringValue(str) {
124
+ if (!str)
125
+ return null;
126
+ if (str.length)
127
+ return str.trim();
128
+ return null;
129
+ }
130
+ getNumberValue(str) {
131
+ if (!str)
132
+ return null;
133
+ str = str.replaceAll(',', '');
134
+ if (str.length)
135
+ return +str.trim();
136
+ return null;
137
+ }
138
+ getBooleanValue(str) {
139
+ if (!str)
140
+ return null;
141
+ if (!str.length)
142
+ return null;
143
+ if (str.toLowerCase() === 'true')
144
+ return true;
145
+ return false;
146
+ }
147
+ }
148
+ exports.ReadXlsFile = ReadXlsFile;
149
+ //# sourceMappingURL=read.xls.file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.xls.file.js","sourceRoot":"","sources":["../../../src/accessUtility/libraries/read.xls.file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { UploadService } from '@servicelabsco/nestjs-utility-services';
2
+ import { BulkUploadEntity } from '../entities/bulk.upload.entity';
3
+ import { BulkUploadService } from '../services/bulk.upload.service';
4
+ export declare class SetBulkUploadLogFile {
5
+ private readonly uploadService;
6
+ private readonly bulkUploadService;
7
+ private workbook;
8
+ private upload;
9
+ private headersMapping;
10
+ constructor(uploadService: UploadService, bulkUploadService: BulkUploadService);
11
+ process(upload: BulkUploadEntity): Promise<BulkUploadEntity>;
12
+ private handleSheet;
13
+ private setError;
14
+ private addAdditionalLogColumns;
15
+ private init;
16
+ private setMapping;
17
+ private getColumnPrefix;
18
+ private getMaxWidthOfSheet;
19
+ private getCell;
20
+ private getColumn;
21
+ private getFile;
22
+ }
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SetBulkUploadLogFile = void 0;
4
+ const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
5
+ const bulk_upload_entity_1 = require("../entities/bulk.upload.entity");
6
+ const bulk_upload_item_entity_1 = require("../entities/bulk.upload.item.entity");
7
+ const ExcelJS = require("exceljs");
8
+ const custom_field_entity_1 = require("../../access/entities/custom.field.entity");
9
+ class SetBulkUploadLogFile {
10
+ constructor(uploadService, bulkUploadService) {
11
+ this.uploadService = uploadService;
12
+ this.bulkUploadService = bulkUploadService;
13
+ this.headersMapping = {};
14
+ }
15
+ async process(upload) {
16
+ this.upload = upload;
17
+ await this.init();
18
+ const types = await this.bulkUploadService.getUploadTypes(upload);
19
+ for (const type of types) {
20
+ await this.handleSheet(type);
21
+ }
22
+ const file = await this.getFile();
23
+ const entity = await bulk_upload_entity_1.BulkUploadEntity.first(upload.id);
24
+ entity.stats = { ...entity.stats, log_file: file };
25
+ return entity.save();
26
+ }
27
+ async handleSheet(type) {
28
+ await this.setMapping(type);
29
+ const sheet = type.name.toLowerCase();
30
+ const worksheet = this.workbook.getWorksheet(sheet);
31
+ if (!worksheet)
32
+ return;
33
+ const width = await this.getMaxWidthOfSheet(type);
34
+ this.addAdditionalLogColumns(worksheet, width);
35
+ const items = await bulk_upload_item_entity_1.BulkUploadItemEntity.find({ where: { bulk_upload_id: this.upload.id, sheet }, order: { row_num: 'asc' } });
36
+ for (const item of items) {
37
+ await this.setError(item, worksheet, width);
38
+ }
39
+ }
40
+ async setError(item, worksheet, width) {
41
+ const statusCell = this.getCell(item.row_num + 1, width + 1);
42
+ const recordCell = this.getCell(item.row_num + 1, width + 2);
43
+ const errorCell = this.getCell(item.row_num + 1, width + 3);
44
+ let status = 'success';
45
+ if (item.attributes?.object_id)
46
+ worksheet.getCell(recordCell).value = item.attributes?.object_id;
47
+ for (const [key, value] of Object.entries(item.error?.columns || {})) {
48
+ const column = this.getColumn(item.sheet, key, item.row_num + 1);
49
+ worksheet.getCell(column).note = value;
50
+ status = 'Partial';
51
+ }
52
+ if (item.error?.error) {
53
+ worksheet.getCell(errorCell).value = item.error.error;
54
+ status = 'error';
55
+ }
56
+ worksheet.getCell(statusCell).value = status;
57
+ }
58
+ addAdditionalLogColumns(worksheet, width) {
59
+ const statusCell = this.getCell(1, width + 1);
60
+ const recordCell = this.getCell(1, width + 2);
61
+ const errorCell = this.getCell(1, width + 3);
62
+ worksheet.getCell(statusCell).value = 'Status';
63
+ worksheet.getCell(recordCell).value = 'Reference Record';
64
+ worksheet.getCell(errorCell).value = 'Errors';
65
+ }
66
+ async init() {
67
+ this.workbook = new ExcelJS.Workbook();
68
+ const buffer = await this.uploadService.getBufferFromUrl(this.upload.file_url);
69
+ await this.workbook.xlsx.load(buffer);
70
+ }
71
+ async setMapping(type) {
72
+ const headers = {};
73
+ const sheet = type.name.toLowerCase();
74
+ type.columns.forEach((column) => {
75
+ const header = column.identifier.split('.')[0].toLowerCase();
76
+ headers[header] = this.getColumnPrefix(column.priority);
77
+ });
78
+ this.headersMapping[sheet] = headers;
79
+ }
80
+ getColumnPrefix(i, pre) {
81
+ let prefix = '';
82
+ if (pre)
83
+ prefix = this.getColumnPrefix(pre - 1);
84
+ const quotient = Math.floor(i / 26);
85
+ const fraction = i % 26;
86
+ if (quotient)
87
+ return this.getColumnPrefix(fraction, quotient);
88
+ const str = String.fromCharCode(65 + fraction);
89
+ return `${prefix}${str}`;
90
+ }
91
+ async getMaxWidthOfSheet(type) {
92
+ if (!type.custom_field_id)
93
+ return type.columns.length;
94
+ const count = await custom_field_entity_1.CustomFieldEntity.count({ where: { business_id: this.upload.business_id, type_id: type.custom_field_id } });
95
+ return type.columns.length + count;
96
+ }
97
+ getCell(row, i) {
98
+ const str = this.getColumnPrefix(i);
99
+ return `${str}${row}`;
100
+ }
101
+ getColumn(sheet, column, rowNum) {
102
+ const cell = this.headersMapping[sheet][column];
103
+ return `${cell}${rowNum}`;
104
+ }
105
+ async getFile() {
106
+ const buffer = await this.workbook.xlsx.writeBuffer();
107
+ const originalname = `i-${nestjs_utility_services_1.PlatformUtility.generateRandomAlphaNumeric(6).toLowerCase()}-${nestjs_utility_services_1.DateUtil.getDateInFormat()}.xlsx`;
108
+ return this.uploadService.upload({ buffer, originalname }, { folder: 'public/bulk' });
109
+ }
110
+ }
111
+ exports.SetBulkUploadLogFile = SetBulkUploadLogFile;
112
+ //# sourceMappingURL=set.bulk.upload.log.file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.bulk.upload.log.file.js","sourceRoot":"","sources":["../../../src/accessUtility/libraries/set.bulk.upload.log.file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { BulkUploadEntity } from '../entities/bulk.upload.entity';
2
+ import { BulkUploadTypeEntity } from '../entities/bulk.upload.type.entity';
3
+ import { AccessBusinessEntity } from '../../access/entities/access.business.entity';
4
+ import { DocumentFileUploadDto } from '../dtos/document.file.upload.dto';
5
+ export declare class BulkUploadService {
6
+ setUpload(business: AccessBusinessEntity, typeId: number, files: DocumentFileUploadDto): Promise<BulkUploadEntity>;
7
+ getUploadTypes(upload: BulkUploadEntity): Promise<BulkUploadTypeEntity[]>;
8
+ getSheets(upload: BulkUploadEntity): Promise<string[]>;
9
+ }
@@ -0,0 +1,53 @@
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.BulkUploadService = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
12
+ const bulk_definition_entity_1 = require("../entities/bulk.definition.entity");
13
+ const bulk_definition_load_entity_1 = require("../entities/bulk.definition.load.entity");
14
+ const bulk_upload_entity_1 = require("../entities/bulk.upload.entity");
15
+ let BulkUploadService = class BulkUploadService {
16
+ async setUpload(business, typeId, files) {
17
+ const type = await bulk_definition_entity_1.BulkDefinitionEntity.first(typeId);
18
+ if (!type)
19
+ throw new nestjs_utility_services_1.OperationException(`This type is not valid`);
20
+ const record = bulk_upload_entity_1.BulkUploadEntity.create({ business_id: business.id });
21
+ record.definition_id = typeId;
22
+ record.file_url = files.files[0].document_url;
23
+ record.attributes = { ...record.attributes, ...files.files[0].attributes };
24
+ return record.save();
25
+ }
26
+ async getUploadTypes(upload) {
27
+ if (!upload.definition_id)
28
+ return [];
29
+ const loads = await bulk_definition_load_entity_1.BulkDefinitionLoadEntity.find({
30
+ where: { definition_id: upload.definition_id },
31
+ relations: ['type', 'type.columns'],
32
+ order: { priority: 'ASC' },
33
+ });
34
+ const types = [];
35
+ loads.forEach((load) => {
36
+ types.push(load.type);
37
+ });
38
+ return types;
39
+ }
40
+ async getSheets(upload) {
41
+ const types = await this.getUploadTypes(upload);
42
+ const sheets = [];
43
+ types.forEach((type) => {
44
+ sheets.push(type.name.toLowerCase());
45
+ });
46
+ return sheets;
47
+ }
48
+ };
49
+ exports.BulkUploadService = BulkUploadService;
50
+ exports.BulkUploadService = BulkUploadService = __decorate([
51
+ (0, common_1.Injectable)()
52
+ ], BulkUploadService);
53
+ //# sourceMappingURL=bulk.upload.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulk.upload.service.js","sourceRoot":"","sources":["../../../src/accessUtility/services/bulk.upload.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,oFAA4E;AAC5E,+EAA0E;AAC1E,yFAAmF;AACnF,uEAAkE;AAM3D,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC1B,KAAK,CAAC,SAAS,CAAC,QAA8B,EAAE,MAAc,EAAE,KAA4B;QACxF,MAAM,IAAI,GAAG,MAAM,6CAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,4CAAkB,CAAC,wBAAwB,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,qCAAgB,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC;QAE9B,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAE9C,MAAM,CAAC,UAAU,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAE3E,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAwB;QACzC,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,OAAO,EAAE,CAAC;QAErC,MAAM,KAAK,GAAG,MAAM,sDAAwB,CAAC,IAAI,CAAC;YAC9C,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE;YAC9C,SAAS,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;YACnC,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;SAC7B,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,EAAE,CAAC;QAEjB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACnB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAwB;QACpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAA;AA3CY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CA2C7B"}