@servicelabsco/slabs-access-manager 0.1.243 → 0.1.245

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 (66) hide show
  1. package/dist/access/controllers/bulk.upload.controller.d.ts +3 -2
  2. package/dist/access/controllers/bulk.upload.controller.js +14 -3
  3. package/dist/access/controllers/bulk.upload.controller.js.map +1 -1
  4. package/dist/access/dtos/index.d.ts +1 -0
  5. package/dist/access/dtos/index.js +1 -0
  6. package/dist/access/dtos/index.js.map +1 -1
  7. package/dist/access/dtos/report.log.attributes.dto.d.ts +3 -0
  8. package/dist/access/dtos/report.log.attributes.dto.js +8 -0
  9. package/dist/access/dtos/report.log.attributes.dto.js.map +1 -0
  10. package/dist/access/entities/index.d.ts +1 -0
  11. package/dist/access/entities/index.js +1 -0
  12. package/dist/access/entities/index.js.map +1 -1
  13. package/dist/access/entities/report.log.entity.d.ts +17 -0
  14. package/dist/access/entities/report.log.entity.js +74 -0
  15. package/dist/access/entities/report.log.entity.js.map +1 -0
  16. package/dist/access/es6.classes.d.ts +9 -6
  17. package/dist/access/es6.classes.js +8 -0
  18. package/dist/access/es6.classes.js.map +1 -1
  19. package/dist/access/jobs/index.d.ts +1 -0
  20. package/dist/access/jobs/index.js +1 -0
  21. package/dist/access/jobs/index.js.map +1 -1
  22. package/dist/access/jobs/report.log.job.d.ts +7 -0
  23. package/dist/access/jobs/report.log.job.js +29 -0
  24. package/dist/access/jobs/report.log.job.js.map +1 -0
  25. package/dist/access/libraries/process.report.data.d.ts +3 -0
  26. package/dist/access/libraries/process.report.data.js +52 -4
  27. package/dist/access/libraries/process.report.data.js.map +1 -1
  28. package/dist/access/services/access.report.service.d.ts +1 -1
  29. package/dist/access/services/access.report.service.js.map +1 -1
  30. package/dist/access/services/es6.jobs.service.d.ts +3 -1
  31. package/dist/access/services/es6.jobs.service.js +5 -1
  32. package/dist/access/services/es6.jobs.service.js.map +1 -1
  33. package/dist/access/subscribers/index.d.ts +1 -0
  34. package/dist/access/subscribers/index.js +1 -0
  35. package/dist/access/subscribers/index.js.map +1 -1
  36. package/dist/access/subscribers/report.log.subscriber.d.ts +10 -0
  37. package/dist/access/subscribers/report.log.subscriber.js +34 -0
  38. package/dist/access/subscribers/report.log.subscriber.js.map +1 -0
  39. package/dist/accessUtility/es6.classes.d.ts +3 -3
  40. package/dist/accessUtility/jobs/analyse.bulk.upload.job.d.ts +6 -3
  41. package/dist/accessUtility/jobs/analyse.bulk.upload.job.js +8 -3
  42. package/dist/accessUtility/jobs/analyse.bulk.upload.job.js.map +1 -1
  43. package/dist/accessUtility/jobs/bulk.upload.item.job.js +2 -0
  44. package/dist/accessUtility/jobs/bulk.upload.item.job.js.map +1 -1
  45. package/dist/accessUtility/jobs/push.to.bulk.item.job.d.ts +14 -2
  46. package/dist/accessUtility/jobs/push.to.bulk.item.job.js +24 -7
  47. package/dist/accessUtility/jobs/push.to.bulk.item.job.js.map +1 -1
  48. package/dist/accessUtility/libraries/analyse.bulk.upload.d.ts +16 -4
  49. package/dist/accessUtility/libraries/analyse.bulk.upload.js +50 -5
  50. package/dist/accessUtility/libraries/analyse.bulk.upload.js.map +1 -1
  51. package/dist/accessUtility/libraries/read.xls.file.d.ts +37 -29
  52. package/dist/accessUtility/libraries/read.xls.file.js +332 -191
  53. package/dist/accessUtility/libraries/read.xls.file.js.map +1 -1
  54. package/dist/app.controller.d.ts +5 -4
  55. package/dist/app.controller.js +10 -5
  56. package/dist/app.controller.js.map +1 -1
  57. package/dist/config/entity.constants.d.ts +2 -0
  58. package/dist/config/entity.constants.js +2 -0
  59. package/dist/config/entity.constants.js.map +1 -1
  60. package/dist/config/redis.config.d.ts +5 -0
  61. package/dist/config/redis.config.js +9 -0
  62. package/dist/config/redis.config.js.map +1 -0
  63. package/dist/migrations/1751443370363-CreateReportLogTable.d.ts +5 -0
  64. package/dist/migrations/1751443370363-CreateReportLogTable.js +25 -0
  65. package/dist/migrations/1751443370363-CreateReportLogTable.js.map +1 -0
  66. package/package.json +1 -1
@@ -1,23 +1,68 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AnalyseBulkUpload = void 0;
4
+ const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
4
5
  const bulk_upload_entity_1 = require("../entities/bulk.upload.entity");
5
6
  const read_xls_file_1 = require("./read.xls.file");
6
7
  class AnalyseBulkUpload extends read_xls_file_1.ReadXlsFile {
7
- constructor(uploadService, bulkUploadService, pushToBulkItemJob, propertyService) {
8
+ constructor(uploadService, bulkUploadService, pushToBulkItemJob, propertyService, sqlService, redisService) {
8
9
  super();
9
10
  this.uploadService = uploadService;
10
11
  this.bulkUploadService = bulkUploadService;
11
12
  this.pushToBulkItemJob = pushToBulkItemJob;
12
13
  this.propertyService = propertyService;
14
+ this.sqlService = sqlService;
15
+ this.redisService = redisService;
13
16
  }
14
17
  async process(id) {
15
- const entity = await bulk_upload_entity_1.BulkUploadEntity.first(id);
18
+ const entity = await this.validate(id);
16
19
  this.upload = entity;
17
- const types = await this.bulkUploadService.getUploadTypes(entity);
18
- const rows = await this.handle(types);
19
- entity.total_rows = rows;
20
+ try {
21
+ const types = await this.bulkUploadService.getUploadTypes(entity);
22
+ if (!types.length) {
23
+ throw new nestjs_utility_services_1.OperationException('No upload types found for this bulk upload');
24
+ }
25
+ await this.cleanExistingItems(entity);
26
+ const totalRows = await this.handle(types);
27
+ return this.updateUploadWithResults(entity, totalRows);
28
+ }
29
+ catch (error) {
30
+ console.error(`Failed to process bulk upload ${id}:`, error);
31
+ if (error instanceof nestjs_utility_services_1.OperationException) {
32
+ throw error;
33
+ }
34
+ throw new nestjs_utility_services_1.OperationException(`Failed to process bulk upload: ${error.message}`);
35
+ }
36
+ }
37
+ async validate(id) {
38
+ const entity = await bulk_upload_entity_1.BulkUploadEntity.first(id);
39
+ if (!entity) {
40
+ throw new nestjs_utility_services_1.OperationException(`Bulk upload with ID ${id} not found`);
41
+ }
42
+ if (entity.analysed_at) {
43
+ throw new nestjs_utility_services_1.OperationException(`Bulk upload with ID ${id} has already been analyzed at ${entity.analysed_at}`);
44
+ }
45
+ return entity;
46
+ }
47
+ async cleanExistingItems(upload) {
48
+ try {
49
+ const sql = `DELETE FROM utl_bulk_upload_items WHERE bulk_upload_id = ${upload.id}`;
50
+ await this.sqlService.sql(sql);
51
+ }
52
+ catch (error) {
53
+ throw new nestjs_utility_services_1.OperationException(`Failed to clean existing items: ${error.message}`);
54
+ }
55
+ }
56
+ async updateUploadWithResults(entity, totalRows) {
57
+ entity.total_rows = totalRows;
58
+ entity.analysed_at = new Date();
20
59
  await entity.save();
60
+ return {
61
+ totalRows,
62
+ validRecords: entity.valid_records || 0,
63
+ invalidRecords: entity.invalid_records || 0,
64
+ analysedAt: entity.analysed_at,
65
+ };
21
66
  }
22
67
  }
23
68
  exports.AnalyseBulkUpload = AnalyseBulkUpload;
@@ -1 +1 @@
1
- {"version":3,"file":"analyse.bulk.upload.js","sourceRoot":"","sources":["../../../src/accessUtility/libraries/analyse.bulk.upload.ts"],"names":[],"mappings":";;;AACA,uEAAkE;AAGlE,mDAA8C;AAE9C,MAAa,iBAAkB,SAAQ,2BAAW;IAC9C,YACuB,aAA4B,EAC9B,iBAAoC,EAClC,iBAAoC,EACpC,eAAgC;QAEnD,KAAK,EAAE,CAAC;QALW,kBAAa,GAAb,aAAa,CAAe;QAC9B,sBAAiB,GAAjB,iBAAiB,CAAmB;QAClC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,oBAAe,GAAf,eAAe,CAAiB;IAGvD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACpB,MAAM,MAAM,GAAG,MAAM,qCAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEtC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QAEzB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;CACJ;AArBD,8CAqBC"}
1
+ {"version":3,"file":"analyse.bulk.upload.js","sourceRoot":"","sources":["../../../src/accessUtility/libraries/analyse.bulk.upload.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { PropertyService, UploadService } from '@servicelabsco/nestjs-utility-services';
1
+ import { PropertyService, RedisService, UploadService } from '@servicelabsco/nestjs-utility-services';
2
2
  import { BulkUploadEntity } from '../entities/bulk.upload.entity';
3
3
  import { BulkUploadTypeEntity } from '../entities/bulk.upload.type.entity';
4
4
  import { PushToBulkItemJob } from '../jobs/push.to.bulk.item.job';
@@ -7,38 +7,46 @@ export declare class ReadXlsFile {
7
7
  protected readonly uploadService: UploadService;
8
8
  protected readonly pushToBulkItemJob: PushToBulkItemJob;
9
9
  protected readonly propertyService: PropertyService;
10
- protected workbook: any;
11
- private promises;
10
+ protected readonly redisService: RedisService;
11
+ private workbook;
12
+ private config;
12
13
  private rowNumber;
13
14
  private totalRows;
14
- private throughCache;
15
15
  private sheetCount;
16
- private stringExclusions;
17
16
  protected handle(types: BulkUploadTypeEntity[]): Promise<number>;
18
- private readFiles;
19
- private getFiles;
20
- private processXls;
21
- private processCsv;
22
- private getDictionaryOfType;
23
- private excelInit;
24
- private readWorksheet;
25
- private handleSheetName;
26
- private handleSheetIndex;
27
- private handleAvailableSheets;
28
- private setSheetCount;
29
- private setWorksheet;
30
- private readCsv;
17
+ private initialize;
18
+ private loadConfiguration;
19
+ private loadStringExclusions;
20
+ private resetCounters;
21
+ private processFiles;
22
+ private getFileExtension;
23
+ private getFileUrls;
24
+ private generateSplitFileUrls;
25
+ private processFile;
26
+ private processCsvFile;
27
+ private processExcelFile;
28
+ private loadExcelWorkbook;
29
+ private processWorksheet;
30
+ private processAllSheets;
31
+ private processSheetByIndex;
32
+ private processSheetByName;
33
+ private processSheet;
34
+ private convertSheetToCsvBuffer;
35
+ private readCsvFromStream;
36
+ private createStreamFromUrl;
37
+ private readCsvFromBuffer;
31
38
  private processRow;
32
- private setData;
33
- private castValue;
34
- private getDictionary;
39
+ private applyDataTransformations;
40
+ private shouldIgnoreRow;
41
+ private addToBatch;
42
+ private flushBatch;
43
+ private pushToQueue;
44
+ private buildColumnDictionary;
35
45
  private mapHeader;
36
- private getStringValue;
37
- private getNumberValue;
38
- private getBooleanValue;
39
- private getDateValue;
40
- private shouldIgnore;
41
- private getDate;
42
- private ensureTempDirectory;
43
- private setStringExclusions;
46
+ private castValue;
47
+ private castToString;
48
+ private castToNumber;
49
+ private castToBoolean;
50
+ private castToDate;
51
+ private parseDate;
44
52
  }