@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.
- package/dist/access/controllers/bulk.upload.controller.d.ts +3 -2
- package/dist/access/controllers/bulk.upload.controller.js +14 -3
- package/dist/access/controllers/bulk.upload.controller.js.map +1 -1
- package/dist/access/dtos/index.d.ts +1 -0
- package/dist/access/dtos/index.js +1 -0
- package/dist/access/dtos/index.js.map +1 -1
- package/dist/access/dtos/report.log.attributes.dto.d.ts +3 -0
- package/dist/access/dtos/report.log.attributes.dto.js +8 -0
- package/dist/access/dtos/report.log.attributes.dto.js.map +1 -0
- package/dist/access/entities/index.d.ts +1 -0
- package/dist/access/entities/index.js +1 -0
- package/dist/access/entities/index.js.map +1 -1
- package/dist/access/entities/report.log.entity.d.ts +17 -0
- package/dist/access/entities/report.log.entity.js +74 -0
- package/dist/access/entities/report.log.entity.js.map +1 -0
- package/dist/access/es6.classes.d.ts +9 -6
- package/dist/access/es6.classes.js +8 -0
- package/dist/access/es6.classes.js.map +1 -1
- package/dist/access/jobs/index.d.ts +1 -0
- package/dist/access/jobs/index.js +1 -0
- package/dist/access/jobs/index.js.map +1 -1
- package/dist/access/jobs/report.log.job.d.ts +7 -0
- package/dist/access/jobs/report.log.job.js +29 -0
- package/dist/access/jobs/report.log.job.js.map +1 -0
- package/dist/access/libraries/process.report.data.d.ts +3 -0
- package/dist/access/libraries/process.report.data.js +52 -4
- package/dist/access/libraries/process.report.data.js.map +1 -1
- package/dist/access/services/access.report.service.d.ts +1 -1
- package/dist/access/services/access.report.service.js.map +1 -1
- package/dist/access/services/es6.jobs.service.d.ts +3 -1
- package/dist/access/services/es6.jobs.service.js +5 -1
- package/dist/access/services/es6.jobs.service.js.map +1 -1
- package/dist/access/subscribers/index.d.ts +1 -0
- package/dist/access/subscribers/index.js +1 -0
- package/dist/access/subscribers/index.js.map +1 -1
- package/dist/access/subscribers/report.log.subscriber.d.ts +10 -0
- package/dist/access/subscribers/report.log.subscriber.js +34 -0
- package/dist/access/subscribers/report.log.subscriber.js.map +1 -0
- package/dist/accessUtility/es6.classes.d.ts +3 -3
- package/dist/accessUtility/jobs/analyse.bulk.upload.job.d.ts +6 -3
- package/dist/accessUtility/jobs/analyse.bulk.upload.job.js +8 -3
- package/dist/accessUtility/jobs/analyse.bulk.upload.job.js.map +1 -1
- package/dist/accessUtility/jobs/bulk.upload.item.job.js +2 -0
- package/dist/accessUtility/jobs/bulk.upload.item.job.js.map +1 -1
- package/dist/accessUtility/jobs/push.to.bulk.item.job.d.ts +14 -2
- package/dist/accessUtility/jobs/push.to.bulk.item.job.js +24 -7
- package/dist/accessUtility/jobs/push.to.bulk.item.job.js.map +1 -1
- package/dist/accessUtility/libraries/analyse.bulk.upload.d.ts +16 -4
- package/dist/accessUtility/libraries/analyse.bulk.upload.js +50 -5
- package/dist/accessUtility/libraries/analyse.bulk.upload.js.map +1 -1
- package/dist/accessUtility/libraries/read.xls.file.d.ts +37 -29
- package/dist/accessUtility/libraries/read.xls.file.js +332 -191
- package/dist/accessUtility/libraries/read.xls.file.js.map +1 -1
- package/dist/app.controller.d.ts +5 -4
- package/dist/app.controller.js +10 -5
- package/dist/app.controller.js.map +1 -1
- package/dist/config/entity.constants.d.ts +2 -0
- package/dist/config/entity.constants.js +2 -0
- package/dist/config/entity.constants.js.map +1 -1
- package/dist/config/redis.config.d.ts +5 -0
- package/dist/config/redis.config.js +9 -0
- package/dist/config/redis.config.js.map +1 -0
- package/dist/migrations/1751443370363-CreateReportLogTable.d.ts +5 -0
- package/dist/migrations/1751443370363-CreateReportLogTable.js +25 -0
- package/dist/migrations/1751443370363-CreateReportLogTable.js.map +1 -0
- 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
|
|
18
|
+
const entity = await this.validate(id);
|
|
16
19
|
this.upload = entity;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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":";;;
|
|
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
|
|
11
|
-
private
|
|
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
|
|
19
|
-
private
|
|
20
|
-
private
|
|
21
|
-
private
|
|
22
|
-
private
|
|
23
|
-
private
|
|
24
|
-
private
|
|
25
|
-
private
|
|
26
|
-
private
|
|
27
|
-
private
|
|
28
|
-
private
|
|
29
|
-
private
|
|
30
|
-
private
|
|
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
|
|
33
|
-
private
|
|
34
|
-
private
|
|
39
|
+
private applyDataTransformations;
|
|
40
|
+
private shouldIgnoreRow;
|
|
41
|
+
private addToBatch;
|
|
42
|
+
private flushBatch;
|
|
43
|
+
private pushToQueue;
|
|
44
|
+
private buildColumnDictionary;
|
|
35
45
|
private mapHeader;
|
|
36
|
-
private
|
|
37
|
-
private
|
|
38
|
-
private
|
|
39
|
-
private
|
|
40
|
-
private
|
|
41
|
-
private
|
|
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
|
}
|