Untitled
unknown
plain_text
16 days ago
1.8 kB
4
Indexable
public async createBusinessBankingEntityV3( @Inject() event: APIGatewayProxyEventWithBosphorusDataAndB2BAuth, @Body() createBankingEntityRequest: ICreateBusinessBankingEntityV3Request, @Header("x-idempotency-key") idempotencyKey: string, ): Promise<IBankingEntityResponse> { try { logger.appendKeys(this.getRequestContext(event)); // Check for existing idempotent request const existingRecord = await this.idempotencyService.findExistingRecord<IBankingEntityResponse>( idempotencyKey, "banking-entity", "create" ); if (existingRecord) { if (existingRecord.status === 'SUCCESS') { logger.info("Returning cached response for idempotent request", { idempotencyKey }); return existingRecord.response; } else if (existingRecord.status === 'ERROR') { logger.info("Returning cached error for idempotent request", { idempotencyKey }); throw new Error(existingRecord.errorDetails.message); } } // Regular processing... // ... // Save successful response await this.idempotencyService.saveRecord({ idempotencyKey, resourceType: "banking-entity", operation: "create", resourceId: response.bankingEntityId, response, status: 'SUCCESS' }); return response; } catch (error) { // Save error response await this.idempotencyService.saveErrorRecord({ idempotencyKey, resourceType: "banking-entity", operation: "create", errorDetails: { message: error.message, code: error.code || 'UNKNOWN_ERROR', stack: error.stack }, status: 'ERROR' }); logger.error("Failed to create business banking entity", { error, idempotencyKey }); genericExceptionHttpWrap(error); } }
Editor is loading...
Leave a Comment