@mbc-cqrs-serverless/import 1.2.3 → 1.2.5
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/dto/create-zip-import.dto.js +1 -0
- package/dist/dto/create-zip-import.dto.js.map +1 -1
- package/dist/event/import.event.handler.js +4 -0
- package/dist/event/import.event.handler.js.map +1 -1
- package/dist/event/index.d.ts +0 -1
- package/dist/event/index.js +0 -1
- package/dist/event/index.js.map +1 -1
- package/dist/import.controller.js +14 -4
- package/dist/import.controller.js.map +1 -1
- package/dist/import.module.js +0 -2
- package/dist/import.module.js.map +1 -1
- package/dist/import.service.d.ts +5 -3
- package/dist/import.service.js +128 -8
- package/dist/import.service.js.map +1 -1
- package/package.json +3 -3
- package/dist/event/zip-import.queue.event.handler.d.ts +0 -25
- package/dist/event/zip-import.queue.event.handler.js +0 -211
- package/dist/event/zip-import.queue.event.handler.js.map +0 -1
|
@@ -37,6 +37,7 @@ __decorate([
|
|
|
37
37
|
__decorate([
|
|
38
38
|
(0, class_validator_1.IsArray)(),
|
|
39
39
|
(0, class_validator_1.IsOptional)(),
|
|
40
|
+
(0, class_validator_1.ArrayMinSize)(1),
|
|
40
41
|
__metadata("design:type", Array)
|
|
41
42
|
], CreateZipImportDto.prototype, "sortedFileKeys", void 0);
|
|
42
43
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-zip-import.dto.js","sourceRoot":"","sources":["../../src/dto/create-zip-import.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"create-zip-import.dto.js","sourceRoot":"","sources":["../../src/dto/create-zip-import.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAMwB;AAExB,MAAa,kBAAkB;IAA/B;QAqBE,2BAA2B;QAC3B,0DAA0D;QAG1D,cAAS,GAAY,IAAI,CAAA;IAC3B,CAAC;CAAA;AA1BD,gDA0BC;AAvBC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;kDACC;AAId;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;+CACF;AAIX;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;sDACK;AAQlB;IAHC,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;IACZ,IAAA,8BAAY,EAAC,CAAC,CAAC;;0DACS;AAMzB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACY"}
|
|
@@ -26,6 +26,10 @@ let ImportEventHandler = ImportEventHandler_1 = class ImportEventHandler {
|
|
|
26
26
|
this.logger = new common_1.Logger(ImportEventHandler_1.name);
|
|
27
27
|
}
|
|
28
28
|
async execute(event) {
|
|
29
|
+
if (event.importEntity.type === 'ZIP_MASTER_JOB') {
|
|
30
|
+
this.logger.debug(`Skipping SQS publish for ZIP_MASTER_JOB: ${event.importEntity.id}`);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
29
33
|
const queueUrl = this.configService.get('IMPORT_QUEUE_URL');
|
|
30
34
|
if (!queueUrl)
|
|
31
35
|
throw new Error('IMPORT_QUEUE_URL is not configured');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.event.handler.js","sourceRoot":"","sources":["../../src/event/import.event.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,oDAIkC;AAClC,2CAAuC;AACvC,2CAA8C;AAE9C,2DAAuE;AACvE,mEAA6D;AAC7D,sDAAiD;AACjD,iDAA4C;AAGrC,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAG7B,YACmB,UAAsB,EACtB,aAA4B,EAC5B,aAA4B;QAF5B,eAAU,GAAV,UAAU,CAAY;QACtB,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAe;QAL9B,WAAM,GAAG,IAAI,eAAM,CAAC,oBAAkB,CAAC,IAAI,CAAC,CAAA;IAM1D,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,KAAkB;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,kBAAkB,CAAC,CAAA;QACnE,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QAEpE,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAC/B,QAAQ,EACR,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,2CAA4B,EAAE,GAAG,KAAK,EAAE,CAAC,CACnE,CAAA;QAED,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAC1C,KAAK,CAAC,SAAS,EACf,qCAAgB,CAAC,MAAM,CACxB,CAAA;IACH,CAAC;CACF,CAAA;
|
|
1
|
+
{"version":3,"file":"import.event.handler.js","sourceRoot":"","sources":["../../src/event/import.event.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,oDAIkC;AAClC,2CAAuC;AACvC,2CAA8C;AAE9C,2DAAuE;AACvE,mEAA6D;AAC7D,sDAAiD;AACjD,iDAA4C;AAGrC,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAG7B,YACmB,UAAsB,EACtB,aAA4B,EAC5B,aAA4B;QAF5B,eAAU,GAAV,UAAU,CAAY;QACtB,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAe;QAL9B,WAAM,GAAG,IAAI,eAAM,CAAC,oBAAkB,CAAC,IAAI,CAAC,CAAA;IAM1D,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,KAAkB;QAC9B,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,4CAA4C,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,CACpE,CAAA;YACD,OAAM;QACR,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,kBAAkB,CAAC,CAAA;QACnE,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QAEpE,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAC/B,QAAQ,EACR,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,2CAA4B,EAAE,GAAG,KAAK,EAAE,CAAC,CACnE,CAAA;QAED,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAC1C,KAAK,CAAC,SAAS,EACf,qCAAgB,CAAC,MAAM,CACxB,CAAA;IACH,CAAC;CACF,CAAA;AA7BY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAY,EAAC,0BAAW,CAAC;qCAKO,iBAAU;QACP,sBAAa;QACb,8BAAa;GANpC,kBAAkB,CA6B9B"}
|
package/dist/event/index.d.ts
CHANGED
|
@@ -8,6 +8,5 @@ export * from './import.queue.event';
|
|
|
8
8
|
export * from './import.queue.event.handler';
|
|
9
9
|
export * from './import-status.queue.event';
|
|
10
10
|
export * from './import-status.queue.event.handler';
|
|
11
|
-
export * from './zip-import.queue.event.handler';
|
|
12
11
|
export * from './zip-import.sfn.event';
|
|
13
12
|
export * from './zip-import.sfn.event.handler';
|
package/dist/event/index.js
CHANGED
|
@@ -24,7 +24,6 @@ __exportStar(require("./import.queue.event"), exports);
|
|
|
24
24
|
__exportStar(require("./import.queue.event.handler"), exports);
|
|
25
25
|
__exportStar(require("./import-status.queue.event"), exports);
|
|
26
26
|
__exportStar(require("./import-status.queue.event.handler"), exports);
|
|
27
|
-
__exportStar(require("./zip-import.queue.event.handler"), exports);
|
|
28
27
|
__exportStar(require("./zip-import.sfn.event"), exports);
|
|
29
28
|
__exportStar(require("./zip-import.sfn.event.handler"), exports);
|
|
30
29
|
//# sourceMappingURL=index.js.map
|
package/dist/event/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/event/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yEAAsD;AACtD,mEAAgD;AAChD,yDAAsC;AACtC,iEAA8C;AAC9C,iDAA8B;AAC9B,yDAAsC;AACtC,uDAAoC;AACpC,+DAA4C;AAC5C,8DAA2C;AAC3C,sEAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/event/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yEAAsD;AACtD,mEAAgD;AAChD,yDAAsC;AACtC,iEAA8C;AAC9C,iDAA8B;AAC9B,yDAAsC;AACtC,uDAAoC;AACpC,+DAA4C;AAC5C,8DAA2C;AAC3C,sEAAmD;AACnD,yDAAsC;AACtC,iEAA8C"}
|
|
@@ -102,14 +102,24 @@ __decorate([
|
|
|
102
102
|
(0, common_1.Post)('zip'),
|
|
103
103
|
(0, swagger_1.ApiOperation)({
|
|
104
104
|
summary: 'Initiate a ZIP file import',
|
|
105
|
-
description:
|
|
105
|
+
description: `
|
|
106
|
+
Synchronously initializes a ZIP import job and triggers the Step Function orchestrator.
|
|
107
|
+
|
|
108
|
+
⚠️ **Performance & Size Limits (API Gateway 29s Timeout):**
|
|
109
|
+
* **Small Files:** Send the ZIP S3 key. The backend will synchronously download, extract, and upload the individual CSVs to S3.
|
|
110
|
+
* **Large Files:** To prevent 504 Gateway Timeouts, the client application *must* extract the ZIP on the frontend, upload the CSVs directly to S3, and provide the \`sortedFileKeys\` array in this payload. If \`sortedFileKeys\` is provided, the backend safely bypasses in-memory extraction.
|
|
111
|
+
`,
|
|
106
112
|
}),
|
|
107
113
|
(0, swagger_1.ApiBody)({ type: create_zip_import_dto_1.CreateZipImportDto }),
|
|
108
114
|
(0, swagger_1.ApiResponse)({
|
|
109
|
-
status:
|
|
110
|
-
description: 'The
|
|
115
|
+
status: 201,
|
|
116
|
+
description: 'The ZIP import job was successfully created and the orchestrator started.',
|
|
111
117
|
}),
|
|
112
|
-
(0,
|
|
118
|
+
(0, swagger_1.ApiResponse)({
|
|
119
|
+
status: 400,
|
|
120
|
+
description: 'Bad Request - ZIP file is empty, corrupt, or invalid.',
|
|
121
|
+
}),
|
|
122
|
+
(0, common_1.HttpCode)(common_1.HttpStatus.CREATED),
|
|
113
123
|
(0, common_1.UsePipes)(new common_1.ValidationPipe({ transform: true, whitelist: true })),
|
|
114
124
|
__param(0, (0, core_1.INVOKE_CONTEXT)()),
|
|
115
125
|
__param(1, (0, common_1.Body)()),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.controller.js","sourceRoot":"","sources":["../src/import.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAmE;AACnE,2CASuB;AACvB,6CAA6E;AAE7E,uEAAgE;AAChE,+DAAyD;AACzD,uEAAgE;AAChE,qDAAgD;AAIzC,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAG3B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAFxC,WAAM,GAAG,IAAI,eAAM,CAAC,kBAAgB,CAAC,IAAI,CAAC,CAAA;IAEC,CAAC;IAE7D;;;;;OAKG;IAcG,AAAN,KAAK,CAAC,YAAY,CACE,aAAsB,EAChC,eAAgC;QAExC,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,6CAA6C,eAAe,CAAC,SAAS,EAAE,CACzE,CAAA;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,aAAa,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED;;;;OAIG;IAmBG,AAAN,KAAK,CAAC,eAAe,CACD,aAAsB,EAChC,kBAAsC;QAE9C,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,wCAAwC,kBAAkB,CAAC,GAAG,0BAA0B,kBAAkB,CAAC,cAAc,EAAE,CAC5H,CAAA;QACD,oEAAoE;QACpE,kDAAkD;QAClD,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,kBAAkB,EAAE;YAC5D,aAAa;SACd,CAAC,CAAA;IACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"import.controller.js","sourceRoot":"","sources":["../src/import.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAmE;AACnE,2CASuB;AACvB,6CAA6E;AAE7E,uEAAgE;AAChE,+DAAyD;AACzD,uEAAgE;AAChE,qDAAgD;AAIzC,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAG3B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAFxC,WAAM,GAAG,IAAI,eAAM,CAAC,kBAAgB,CAAC,IAAI,CAAC,CAAA;IAEC,CAAC;IAE7D;;;;;OAKG;IAcG,AAAN,KAAK,CAAC,YAAY,CACE,aAAsB,EAChC,eAAgC;QAExC,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,6CAA6C,eAAe,CAAC,SAAS,EAAE,CACzE,CAAA;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,aAAa,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED;;;;OAIG;IAmBG,AAAN,KAAK,CAAC,eAAe,CACD,aAAsB,EAChC,kBAAsC;QAE9C,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,wCAAwC,kBAAkB,CAAC,GAAG,0BAA0B,kBAAkB,CAAC,cAAc,EAAE,CAC5H,CAAA;QACD,oEAAoE;QACpE,kDAAkD;QAClD,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,kBAAkB,EAAE;YAC5D,aAAa;SACd,CAAC,CAAA;IACJ,CAAC;IAyBK,AAAN,KAAK,CAAC,eAAe,CACD,aAAsB,EAChC,kBAAsC;QAE9C,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,wCAAwC,kBAAkB,CAAC,GAAG,EAAE,CACjE,CAAA;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,kBAAkB,EAAE;YACzD,aAAa;SACd,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAzGY,4CAAgB;AAwBrB;IAbL,IAAA,aAAI,GAAE;IACN,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,wBAAwB;QACjC,WAAW,EACT,4HAA4H;KAC/H,CAAC;IACD,IAAA,iBAAO,EAAC,EAAE,IAAI,EAAE,mCAAe,EAAE,CAAC;IAClC,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,8DAA8D;KAC5E,CAAC;IACD,IAAA,iBAAQ,EAAC,mBAAU,CAAC,QAAQ,CAAC;IAC7B,IAAA,iBAAQ,EAAC,IAAI,uBAAc,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,WAAA,IAAA,qBAAc,GAAE,CAAA;IAChB,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAkB,mCAAe;;oDAMzC;AAyBK;IAlBL,IAAA,aAAI,EAAC,KAAK,CAAC;IACX,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,4BAA4B;QACrC,WAAW,EACT,gJAAgJ;KACnJ,CAAC;IACD,IAAA,iBAAO,EAAC,EAAE,IAAI,EAAE,0CAAkB,EAAE,CAAC;IACrC,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EACT,8GAA8G;KACjH,CAAC;IACD,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EACT,uFAAuF;KAC1F,CAAC;IACD,IAAA,iBAAQ,EAAC,IAAI,uBAAc,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,WAAA,IAAA,qBAAc,GAAE,CAAA;IAChB,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAqB,0CAAkB;;uDAU/C;AAyBK;IAvBL,IAAA,aAAI,EAAC,KAAK,CAAC;IACX,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,4BAA4B;QACrC,WAAW,EAAE;;;;;;GAMd;KACA,CAAC;IACD,IAAA,iBAAO,EAAC,EAAE,IAAI,EAAE,0CAAkB,EAAE,CAAC;IACrC,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EACT,2EAA2E;KAC9E,CAAC;IACD,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,uDAAuD;KACrE,CAAC;IACD,IAAA,iBAAQ,EAAC,mBAAU,CAAC,OAAO,CAAC;IAC5B,IAAA,iBAAQ,EAAC,IAAI,uBAAc,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,WAAA,IAAA,qBAAc,GAAE,CAAA;IAChB,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAqB,0CAAkB;;uDAQ/C;2BAxGU,gBAAgB;IAF5B,IAAA,iBAAO,EAAC,SAAS,CAAC;IAClB,IAAA,mBAAU,EAAC,SAAS,CAAC;qCAIwB,8BAAa;GAH9C,gBAAgB,CAyG5B"}
|
package/dist/import.module.js
CHANGED
|
@@ -18,7 +18,6 @@ const import_queue_event_handler_1 = require("./event/import.queue.event.handler
|
|
|
18
18
|
const import_status_queue_event_handler_1 = require("./event/import-status.queue.event.handler");
|
|
19
19
|
const csv_batch_processor_1 = require("./event/processor/csv-batch.processor");
|
|
20
20
|
const single_import_processor_1 = require("./event/processor/single-import.processor");
|
|
21
|
-
const zip_import_queue_event_handler_1 = require("./event/zip-import.queue.event.handler");
|
|
22
21
|
const zip_import_sfn_event_handler_1 = require("./event/zip-import.sfn.event.handler");
|
|
23
22
|
const import_controller_1 = require("./import.controller");
|
|
24
23
|
const import_module_definition_1 = require("./import.module-definition");
|
|
@@ -98,7 +97,6 @@ exports.ImportModule = ImportModule = __decorate([
|
|
|
98
97
|
csv_import_sfn_event_handler_1.CsvImportSfnEventHandler,
|
|
99
98
|
command_finished_queue_event_handler_1.CommandFinishedHandler,
|
|
100
99
|
import_status_queue_event_handler_1.ImportStatusHandler,
|
|
101
|
-
zip_import_queue_event_handler_1.ZipImportQueueEventHandler,
|
|
102
100
|
zip_import_sfn_event_handler_1.ZipImportSfnEventHandler,
|
|
103
101
|
csv_batch_processor_1.CsvBatchProcessor,
|
|
104
102
|
single_import_processor_1.SingleImportProcessor,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.module.js","sourceRoot":"","sources":["../src/import.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oDAAwE;AACxE,2CAAsE;AAEtE,8DAA6D;AAC7D,uGAAqF;AACrF,2FAAmF;AACnF,uFAA+E;AAC/E,uEAAiE;AACjE,mFAA4E;AAC5E,iGAA+E;AAC/E,+EAAyE;AACzE,uFAAiF;AACjF,
|
|
1
|
+
{"version":3,"file":"import.module.js","sourceRoot":"","sources":["../src/import.module.ts"],"names":[],"mappings":"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"}
|
package/dist/import.service.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DdbUpdateItem, DetailKey, DynamoDbService, ICommandOptions, IInvoke, S3Service, SnsService } from '@mbc-cqrs-serverless/core';
|
|
1
|
+
import { DdbUpdateItem, DetailKey, DynamoDbService, ICommandOptions, IInvoke, S3Service, SnsService, StepFunctionService } from '@mbc-cqrs-serverless/core';
|
|
2
2
|
import { ConfigService } from '@nestjs/config';
|
|
3
3
|
import { CreateCsvImportDto } from './dto/create-csv-import.dto';
|
|
4
4
|
import { CreateImportDto } from './dto/create-import.dto';
|
|
@@ -9,13 +9,14 @@ import { IImportStrategy } from './interface';
|
|
|
9
9
|
export declare class ImportService {
|
|
10
10
|
private readonly dynamoDbService;
|
|
11
11
|
private readonly snsService;
|
|
12
|
-
private readonly config;
|
|
13
12
|
private readonly s3Service;
|
|
14
13
|
private readonly importStrategyMap;
|
|
14
|
+
private readonly configService;
|
|
15
|
+
private readonly sfnService;
|
|
15
16
|
private readonly logger;
|
|
16
17
|
private readonly tableName;
|
|
17
18
|
private readonly alarmTopicArn;
|
|
18
|
-
constructor(dynamoDbService: DynamoDbService, snsService: SnsService,
|
|
19
|
+
constructor(dynamoDbService: DynamoDbService, snsService: SnsService, s3Service: S3Service, importStrategyMap: Map<string, IImportStrategy<any, any>>, configService: ConfigService, sfnService: StepFunctionService);
|
|
19
20
|
/**
|
|
20
21
|
* Handles a single import request from the API.
|
|
21
22
|
* It uses the appropriate ImportStrategy to transform and validate the data
|
|
@@ -37,6 +38,7 @@ export declare class ImportService {
|
|
|
37
38
|
createZipJob(dto: CreateZipImportDto, options: {
|
|
38
39
|
invokeContext: IInvoke;
|
|
39
40
|
}): Promise<ImportEntity>;
|
|
41
|
+
private streamToBuffer;
|
|
40
42
|
/**
|
|
41
43
|
* Creates a import job record for a single json import
|
|
42
44
|
*/
|
package/dist/import.service.js
CHANGED
|
@@ -1,10 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
2
18
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
19
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
20
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
21
|
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
22
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
23
|
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
8
41
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
42
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
43
|
};
|
|
@@ -19,11 +52,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
19
52
|
exports.ImportService = void 0;
|
|
20
53
|
const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
|
|
21
54
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
55
|
+
const lib_storage_1 = require("@aws-sdk/lib-storage");
|
|
22
56
|
const util_dynamodb_1 = require("@aws-sdk/util-dynamodb");
|
|
23
57
|
const core_1 = require("@mbc-cqrs-serverless/core");
|
|
24
58
|
const common_1 = require("@nestjs/common");
|
|
25
59
|
const config_1 = require("@nestjs/config");
|
|
26
60
|
const csv_parser_1 = __importDefault(require("csv-parser"));
|
|
61
|
+
const JSZip = __importStar(require("jszip"));
|
|
27
62
|
const stream_1 = require("stream");
|
|
28
63
|
const ulid_1 = require("ulid");
|
|
29
64
|
const constant_1 = require("./constant");
|
|
@@ -31,15 +66,16 @@ const entity_1 = require("./entity");
|
|
|
31
66
|
const enum_1 = require("./enum");
|
|
32
67
|
const import_module_definition_1 = require("./import.module-definition");
|
|
33
68
|
let ImportService = ImportService_1 = class ImportService {
|
|
34
|
-
constructor(dynamoDbService, snsService,
|
|
69
|
+
constructor(dynamoDbService, snsService, s3Service, importStrategyMap, configService, sfnService) {
|
|
35
70
|
this.dynamoDbService = dynamoDbService;
|
|
36
71
|
this.snsService = snsService;
|
|
37
|
-
this.config = config;
|
|
38
72
|
this.s3Service = s3Service;
|
|
39
73
|
this.importStrategyMap = importStrategyMap;
|
|
74
|
+
this.configService = configService;
|
|
75
|
+
this.sfnService = sfnService;
|
|
40
76
|
this.logger = new common_1.Logger(ImportService_1.name);
|
|
41
77
|
this.tableName = dynamoDbService.getTableName('import_tmp');
|
|
42
|
-
this.alarmTopicArn = this.
|
|
78
|
+
this.alarmTopicArn = this.configService.get('SNS_ALARM_TOPIC_ARN');
|
|
43
79
|
}
|
|
44
80
|
/**
|
|
45
81
|
* Handles a single import request from the API.
|
|
@@ -101,11 +137,20 @@ let ImportService = ImportService_1 = class ImportService {
|
|
|
101
137
|
return item;
|
|
102
138
|
}
|
|
103
139
|
async createZipJob(dto, options) {
|
|
140
|
+
if (dto.sortedFileKeys != null &&
|
|
141
|
+
Array.isArray(dto.sortedFileKeys) &&
|
|
142
|
+
dto.sortedFileKeys.length === 0) {
|
|
143
|
+
throw new common_1.BadRequestException('sortedFileKeys cannot be an empty array; omit the field to extract from the ZIP in S3.');
|
|
144
|
+
}
|
|
104
145
|
const sourceIp = options.invokeContext?.event?.requestContext?.http?.sourceIp;
|
|
105
146
|
const userContext = (0, core_1.getUserContext)(options.invokeContext);
|
|
106
147
|
const taskCode = (0, ulid_1.ulid)();
|
|
107
148
|
const pk = `${constant_1.ZIP_IMPORT_PK_PREFIX}${core_1.KEY_SEPARATOR}${dto.tenantCode}`;
|
|
108
149
|
const sk = `ZIP#${taskCode}`;
|
|
150
|
+
const masterJobKey = {
|
|
151
|
+
pk,
|
|
152
|
+
sk,
|
|
153
|
+
};
|
|
109
154
|
const item = new entity_1.ImportEntity({
|
|
110
155
|
id: `${pk}#${sk}`,
|
|
111
156
|
pk,
|
|
@@ -115,7 +160,7 @@ let ImportService = ImportService_1 = class ImportService {
|
|
|
115
160
|
tenantCode: dto.tenantCode,
|
|
116
161
|
type: 'ZIP_MASTER_JOB',
|
|
117
162
|
name: `ZIP Import: ${dto.key.split('/').pop()}`,
|
|
118
|
-
status: enum_1.ImportStatusEnum.
|
|
163
|
+
status: enum_1.ImportStatusEnum.PROCESSING,
|
|
119
164
|
attributes: dto,
|
|
120
165
|
requestId: options.invokeContext?.context?.awsRequestId,
|
|
121
166
|
createdAt: new Date(),
|
|
@@ -126,7 +171,81 @@ let ImportService = ImportService_1 = class ImportService {
|
|
|
126
171
|
updatedIp: sourceIp,
|
|
127
172
|
});
|
|
128
173
|
await this.dynamoDbService.putItem(this.tableName, item);
|
|
129
|
-
|
|
174
|
+
try {
|
|
175
|
+
let sortedS3Keys = dto.sortedFileKeys || [];
|
|
176
|
+
// 3. Extract and Upload if sorted keys are not provided
|
|
177
|
+
if (sortedS3Keys.length === 0) {
|
|
178
|
+
this.logger.debug(`Downloading and extracting ZIP from S3: ${dto.key}`);
|
|
179
|
+
const { Body } = await this.s3Service.client.send(new client_s3_1.GetObjectCommand({ Bucket: dto.bucket, Key: dto.key }));
|
|
180
|
+
// Convert stream to buffer for JSZip
|
|
181
|
+
const zipBuffer = await this.streamToBuffer(Body);
|
|
182
|
+
const zip = await JSZip.loadAsync(zipBuffer);
|
|
183
|
+
const extractedKeys = [];
|
|
184
|
+
// Upload extracted files back to S3
|
|
185
|
+
for (const [filename, zipEntry] of Object.entries(zip.files)) {
|
|
186
|
+
if (zipEntry.dir)
|
|
187
|
+
continue;
|
|
188
|
+
const fileContent = await zipEntry.async('nodebuffer');
|
|
189
|
+
// Use job taskCode as folder so the object basename stays the ZIP entry name.
|
|
190
|
+
// ZipImportSfnEventHandler parses tableName from yyyymmddHHmmss-{tableName}.csv on the final segment.
|
|
191
|
+
const extractedKey = `csv-imports/${dto.tenantCode}/${taskCode}/${filename}`;
|
|
192
|
+
const upload = new lib_storage_1.Upload({
|
|
193
|
+
client: this.s3Service.client,
|
|
194
|
+
params: {
|
|
195
|
+
Bucket: dto.bucket,
|
|
196
|
+
Key: extractedKey,
|
|
197
|
+
Body: fileContent,
|
|
198
|
+
},
|
|
199
|
+
});
|
|
200
|
+
await upload.done();
|
|
201
|
+
extractedKeys.push(extractedKey);
|
|
202
|
+
}
|
|
203
|
+
if (extractedKeys.length === 0) {
|
|
204
|
+
throw new Error('ZIP file is empty or contains no valid files.');
|
|
205
|
+
}
|
|
206
|
+
// Merge into attributes so bucket/key/tenantCode/tableName are not wiped (full map SET).
|
|
207
|
+
await this.updateImportJob(masterJobKey, {
|
|
208
|
+
set: {
|
|
209
|
+
attributes: { ...dto, extractedFileKeys: extractedKeys },
|
|
210
|
+
},
|
|
211
|
+
});
|
|
212
|
+
// Sort them automatically if the client didn't
|
|
213
|
+
sortedS3Keys = extractedKeys.sort();
|
|
214
|
+
}
|
|
215
|
+
// 4. Trigger the Step Function Orchestrator synchronously
|
|
216
|
+
const sfnArn = this.configService.get('SFN_IMPORT_ZIP_ORCHESTRATOR_ARN');
|
|
217
|
+
if (!sfnArn)
|
|
218
|
+
throw new Error('Missing SFN_IMPORT_ZIP_ORCHESTRATOR_ARN config');
|
|
219
|
+
const executionName = `${dto.tenantCode}-zip-import-${Date.now()}`;
|
|
220
|
+
await this.sfnService.startExecution(sfnArn, {
|
|
221
|
+
masterJobKey,
|
|
222
|
+
sortedS3Keys,
|
|
223
|
+
parameters: {
|
|
224
|
+
bucket: dto.bucket,
|
|
225
|
+
tenantCode: dto.tenantCode,
|
|
226
|
+
tableName: dto.tableName,
|
|
227
|
+
},
|
|
228
|
+
}, executionName);
|
|
229
|
+
this.logger.log(`Successfully started ZIP orchestrator: ${executionName}`);
|
|
230
|
+
return item;
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
// 5. Synchronous Rollback: If anything fails, mark DB as FAILED and bubble error
|
|
234
|
+
this.logger.error(`Failed to process ZIP job: ${masterJobKey.sk}`, error);
|
|
235
|
+
await this.updateStatus(masterJobKey, enum_1.ImportStatusEnum.FAILED, {
|
|
236
|
+
error: { message: error.message },
|
|
237
|
+
});
|
|
238
|
+
throw error; // Throwing here allows your HTTP Controller to return a 400/500 to the client
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
// Helper method if you don't already have it
|
|
242
|
+
async streamToBuffer(stream) {
|
|
243
|
+
return new Promise((resolve, reject) => {
|
|
244
|
+
const chunks = [];
|
|
245
|
+
stream.on('data', (chunk) => chunks.push(chunk));
|
|
246
|
+
stream.on('error', reject);
|
|
247
|
+
stream.on('end', () => resolve(Buffer.concat(chunks)));
|
|
248
|
+
});
|
|
130
249
|
}
|
|
131
250
|
/**
|
|
132
251
|
* Creates a import job record for a single json import
|
|
@@ -402,11 +521,12 @@ let ImportService = ImportService_1 = class ImportService {
|
|
|
402
521
|
exports.ImportService = ImportService;
|
|
403
522
|
exports.ImportService = ImportService = ImportService_1 = __decorate([
|
|
404
523
|
(0, common_1.Injectable)(),
|
|
405
|
-
__param(
|
|
524
|
+
__param(3, (0, common_1.Inject)(import_module_definition_1.IMPORT_STRATEGY_MAP)),
|
|
406
525
|
__metadata("design:paramtypes", [core_1.DynamoDbService,
|
|
407
526
|
core_1.SnsService,
|
|
408
|
-
config_1.ConfigService,
|
|
409
527
|
core_1.S3Service,
|
|
410
|
-
Map
|
|
528
|
+
Map,
|
|
529
|
+
config_1.ConfigService,
|
|
530
|
+
core_1.StepFunctionService])
|
|
411
531
|
], ImportService);
|
|
412
532
|
//# sourceMappingURL=import.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.service.js","sourceRoot":"","sources":["../src/import.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"import.service.js","sourceRoot":"","sources":["../src/import.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mbc-cqrs-serverless/import",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.5",
|
|
4
4
|
"description": "Import module",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mbc",
|
|
@@ -41,12 +41,12 @@
|
|
|
41
41
|
"access": "public"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@mbc-cqrs-serverless/core": "1.2.
|
|
44
|
+
"@mbc-cqrs-serverless/core": "1.2.5",
|
|
45
45
|
"JSONStream": "^1.3.5",
|
|
46
46
|
"csv-parser": "^3.2.0"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@types/jsonstream": "^0.8.33"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "de2bc3ea97f9f7f6bdb2df1d00694973b8e271b5"
|
|
52
52
|
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { IEventHandler, S3Service, StepFunctionService } from '@mbc-cqrs-serverless/core';
|
|
2
|
-
import { ConfigService } from '@nestjs/config';
|
|
3
|
-
import { ImportService } from '../import.service';
|
|
4
|
-
import { ImportQueueEvent } from './import.queue.event';
|
|
5
|
-
export declare class ZipImportQueueEventHandler implements IEventHandler<ImportQueueEvent> {
|
|
6
|
-
private readonly configService;
|
|
7
|
-
private readonly sfnService;
|
|
8
|
-
private readonly importService;
|
|
9
|
-
private readonly s3Service;
|
|
10
|
-
private readonly logger;
|
|
11
|
-
private readonly zipOrchestratorArn;
|
|
12
|
-
constructor(configService: ConfigService, sfnService: StepFunctionService, importService: ImportService, s3Service: S3Service);
|
|
13
|
-
execute(event: ImportQueueEvent): Promise<any>;
|
|
14
|
-
private getS3Stream;
|
|
15
|
-
/**
|
|
16
|
-
* Helper function to convert a Readable stream into a Buffer.
|
|
17
|
-
* Required for yauzl, which operates on a complete data source.
|
|
18
|
-
*/
|
|
19
|
-
private streamToBuffer;
|
|
20
|
-
/**
|
|
21
|
-
* Re-implemented using the `jszip` library, which is more tolerant
|
|
22
|
-
* of malformed ZIP archives.
|
|
23
|
-
*/
|
|
24
|
-
private unzipAndUpload;
|
|
25
|
-
}
|
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
-
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;
|
|
22
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
-
};
|
|
24
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
-
var ownKeys = function(o) {
|
|
26
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
-
var ar = [];
|
|
28
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
-
return ar;
|
|
30
|
-
};
|
|
31
|
-
return ownKeys(o);
|
|
32
|
-
};
|
|
33
|
-
return function (mod) {
|
|
34
|
-
if (mod && mod.__esModule) return mod;
|
|
35
|
-
var result = {};
|
|
36
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
-
__setModuleDefault(result, mod);
|
|
38
|
-
return result;
|
|
39
|
-
};
|
|
40
|
-
})();
|
|
41
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
42
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
43
|
-
};
|
|
44
|
-
var ZipImportQueueEventHandler_1;
|
|
45
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
-
exports.ZipImportQueueEventHandler = void 0;
|
|
47
|
-
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
48
|
-
const lib_storage_1 = require("@aws-sdk/lib-storage");
|
|
49
|
-
const core_1 = require("@mbc-cqrs-serverless/core");
|
|
50
|
-
const common_1 = require("@nestjs/common");
|
|
51
|
-
const config_1 = require("@nestjs/config");
|
|
52
|
-
const JSZip = __importStar(require("jszip"));
|
|
53
|
-
const stream_1 = require("stream");
|
|
54
|
-
const constant_1 = require("../constant");
|
|
55
|
-
const enum_1 = require("../enum");
|
|
56
|
-
const import_service_1 = require("../import.service");
|
|
57
|
-
const import_queue_event_1 = require("./import.queue.event");
|
|
58
|
-
let ZipImportQueueEventHandler = ZipImportQueueEventHandler_1 = class ZipImportQueueEventHandler {
|
|
59
|
-
constructor(configService, sfnService, importService, s3Service) {
|
|
60
|
-
this.configService = configService;
|
|
61
|
-
this.sfnService = sfnService;
|
|
62
|
-
this.importService = importService;
|
|
63
|
-
this.s3Service = s3Service;
|
|
64
|
-
this.logger = new common_1.Logger(ZipImportQueueEventHandler_1.name);
|
|
65
|
-
this.zipOrchestratorArn = this.configService.get('SFN_IMPORT_ZIP_ORCHESTRATOR_ARN');
|
|
66
|
-
}
|
|
67
|
-
async execute(event) {
|
|
68
|
-
if (event.isCsvBatch) {
|
|
69
|
-
this.logger.debug('Skipping batch processing payload in ZipImportQueueEventHandler');
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
const importEntity = event.importEvent?.importEntity;
|
|
73
|
-
if (!importEntity)
|
|
74
|
-
return;
|
|
75
|
-
if (!importEntity.id.startsWith(`${constant_1.ZIP_IMPORT_PK_PREFIX}${core_1.KEY_SEPARATOR}`)) {
|
|
76
|
-
this.logger.debug(`Skipping other type import job in zip queue handler: ${importEntity.id}`);
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
const importKey = event.importEvent.importKey;
|
|
80
|
-
const zipJobAttributes = importEntity.attributes;
|
|
81
|
-
this.logger.log(`Received master ZIP job from queue: ${importEntity.id} for file ${zipJobAttributes.key}`);
|
|
82
|
-
try {
|
|
83
|
-
await this.importService.updateStatus(importKey, enum_1.ImportStatusEnum.PROCESSING, { result: { step: 'Unzipping archive' } });
|
|
84
|
-
if (zipJobAttributes.sortedFileKeys &&
|
|
85
|
-
zipJobAttributes.sortedFileKeys.length === 0) {
|
|
86
|
-
throw new Error('Sorted file keys are required.');
|
|
87
|
-
}
|
|
88
|
-
if (zipJobAttributes.sortedFileKeys &&
|
|
89
|
-
zipJobAttributes.sortedFileKeys.length > 0) {
|
|
90
|
-
// Start the main orchestrator with the sorted list of files
|
|
91
|
-
await this.sfnService.startExecution(this.zipOrchestratorArn, {
|
|
92
|
-
masterJobKey: importKey,
|
|
93
|
-
sortedS3Keys: zipJobAttributes.sortedFileKeys,
|
|
94
|
-
// Pass through original attributes needed by the sub-workflows
|
|
95
|
-
parameters: {
|
|
96
|
-
bucket: zipJobAttributes.bucket,
|
|
97
|
-
tenantCode: zipJobAttributes.tenantCode,
|
|
98
|
-
tableName: zipJobAttributes.tableName,
|
|
99
|
-
},
|
|
100
|
-
}, `${zipJobAttributes.tenantCode}-zip-import-${Date.now()}`);
|
|
101
|
-
this.logger.log(`Started ZIP Orchestrator Step Function for master job ${importEntity.id}`);
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
const s3ReadStream = await this.getS3Stream(zipJobAttributes);
|
|
105
|
-
const extractedFileKeys = await this.unzipAndUpload(s3ReadStream, zipJobAttributes, importEntity.id);
|
|
106
|
-
if (extractedFileKeys.length === 0) {
|
|
107
|
-
throw new Error('No CSV files found in the ZIP archive.');
|
|
108
|
-
}
|
|
109
|
-
// Sort the file keys alphabetically to ensure sequential processing order
|
|
110
|
-
extractedFileKeys.sort();
|
|
111
|
-
await this.importService.updateImportJob(importKey, {
|
|
112
|
-
set: {
|
|
113
|
-
attributes: {
|
|
114
|
-
...zipJobAttributes,
|
|
115
|
-
extractedFileKeys, // Save the list of files to the master job
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
});
|
|
119
|
-
// Start the main orchestrator with the sorted list of files
|
|
120
|
-
await this.sfnService.startExecution(this.zipOrchestratorArn, {
|
|
121
|
-
masterJobKey: importKey,
|
|
122
|
-
sortedS3Keys: extractedFileKeys,
|
|
123
|
-
// Pass through original attributes needed by the sub-workflows
|
|
124
|
-
parameters: {
|
|
125
|
-
bucket: zipJobAttributes.bucket,
|
|
126
|
-
tenantCode: zipJobAttributes.tenantCode,
|
|
127
|
-
tableName: zipJobAttributes.tableName,
|
|
128
|
-
},
|
|
129
|
-
}, `${zipJobAttributes.tenantCode}-zip-import-${Date.now()}`);
|
|
130
|
-
this.logger.log(`Started ZIP Orchestrator Step Function for master job ${importEntity.id}`);
|
|
131
|
-
}
|
|
132
|
-
catch (error) {
|
|
133
|
-
this.logger.error(`Failed to process ZIP job ${importEntity.id}`, error);
|
|
134
|
-
await this.importService.updateStatus(importKey, enum_1.ImportStatusEnum.FAILED, {
|
|
135
|
-
error: {
|
|
136
|
-
message: `Failed during unzip and preparation: ${error.message}`,
|
|
137
|
-
},
|
|
138
|
-
});
|
|
139
|
-
throw error;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
async getS3Stream(attributes) {
|
|
143
|
-
const { Body: s3Stream } = await this.s3Service.client.send(new client_s3_1.GetObjectCommand({
|
|
144
|
-
Bucket: attributes.bucket,
|
|
145
|
-
Key: attributes.key,
|
|
146
|
-
}));
|
|
147
|
-
if (!(s3Stream instanceof stream_1.Readable)) {
|
|
148
|
-
throw new Error('Failed to get a readable stream from S3 object.');
|
|
149
|
-
}
|
|
150
|
-
return s3Stream;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Helper function to convert a Readable stream into a Buffer.
|
|
154
|
-
* Required for yauzl, which operates on a complete data source.
|
|
155
|
-
*/
|
|
156
|
-
streamToBuffer(stream) {
|
|
157
|
-
return new Promise((resolve, reject) => {
|
|
158
|
-
const chunks = [];
|
|
159
|
-
stream.on('data', (chunk) => chunks.push(chunk));
|
|
160
|
-
stream.on('error', reject);
|
|
161
|
-
stream.on('end', () => resolve(Buffer.concat(chunks)));
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Re-implemented using the `jszip` library, which is more tolerant
|
|
166
|
-
* of malformed ZIP archives.
|
|
167
|
-
*/
|
|
168
|
-
async unzipAndUpload(zipStream, attributes, jobId) {
|
|
169
|
-
const tempS3Prefix = `unzipped/${attributes.tenantCode}/${jobId.replace(/[^a-zA-Z0-9]/g, '_')}`;
|
|
170
|
-
// 1. JSZip operates on a buffer, so we first load the stream into memory.
|
|
171
|
-
const zipBuffer = await this.streamToBuffer(zipStream);
|
|
172
|
-
// 2. Load the ZIP data.
|
|
173
|
-
const zip = await JSZip.loadAsync(zipBuffer);
|
|
174
|
-
const uploadPromises = [];
|
|
175
|
-
const extractedFileKeys = [];
|
|
176
|
-
// 3. Loop through each file in the archive.
|
|
177
|
-
for (const file of Object.values(zip.files)) {
|
|
178
|
-
// 4. Skip directories and process only CSV files.
|
|
179
|
-
if (!file.dir && file.name.toLowerCase().endsWith('.csv')) {
|
|
180
|
-
this.logger.debug(`Extracting ${file.name} ...`);
|
|
181
|
-
// 5. Decompress the file content into a buffer.
|
|
182
|
-
const contentBuffer = await file.async('nodebuffer');
|
|
183
|
-
const s3UploadKey = `${tempS3Prefix}/${file.name}`;
|
|
184
|
-
extractedFileKeys.push(s3UploadKey);
|
|
185
|
-
// 6. Create and track the S3 upload promise.
|
|
186
|
-
const upload = new lib_storage_1.Upload({
|
|
187
|
-
client: this.s3Service.client,
|
|
188
|
-
params: {
|
|
189
|
-
Bucket: attributes.bucket,
|
|
190
|
-
Key: s3UploadKey,
|
|
191
|
-
Body: contentBuffer,
|
|
192
|
-
},
|
|
193
|
-
});
|
|
194
|
-
uploadPromises.push(upload.done());
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
// 7. Wait for all files to be uploaded to S3.
|
|
198
|
-
await Promise.all(uploadPromises);
|
|
199
|
-
this.logger.log(`Finished unzipping with JSZip. Uploaded ${extractedFileKeys.length} CSV files.`);
|
|
200
|
-
return extractedFileKeys;
|
|
201
|
-
}
|
|
202
|
-
};
|
|
203
|
-
exports.ZipImportQueueEventHandler = ZipImportQueueEventHandler;
|
|
204
|
-
exports.ZipImportQueueEventHandler = ZipImportQueueEventHandler = ZipImportQueueEventHandler_1 = __decorate([
|
|
205
|
-
(0, core_1.EventHandler)(import_queue_event_1.ImportQueueEvent),
|
|
206
|
-
__metadata("design:paramtypes", [config_1.ConfigService,
|
|
207
|
-
core_1.StepFunctionService,
|
|
208
|
-
import_service_1.ImportService,
|
|
209
|
-
core_1.S3Service])
|
|
210
|
-
], ZipImportQueueEventHandler);
|
|
211
|
-
//# sourceMappingURL=zip-import.queue.event.handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zip-import.queue.event.handler.js","sourceRoot":"","sources":["../../src/event/zip-import.queue.event.handler.ts"],"names":[],"mappings":"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"}
|