From 38466a2b23b8c96e174399521fe35faf762a35dd Mon Sep 17 00:00:00 2001 From: Consultoria AS Date: Sun, 25 Jan 2026 02:17:17 +0000 Subject: [PATCH] fix: use isTypeOf for SAT status request checking The StatusRequest class has an isTypeOf method that properly checks the status. Using getValue() and comparing numbers was unreliable. Co-Authored-By: Claude Opus 4.5 --- .../src/services/sat/sat-client.service.ts | 36 ++++++++----------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/apps/api/src/services/sat/sat-client.service.ts b/apps/api/src/services/sat/sat-client.service.ts index cb62039..d797360 100644 --- a/apps/api/src/services/sat/sat-client.service.ts +++ b/apps/api/src/services/sat/sat-client.service.ts @@ -114,30 +114,22 @@ export async function verifySatRequest( ): Promise { try { const result = await service.verify(requestId); + const statusRequest = result.getStatusRequest(); - const statusCode = result.getStatusRequest().getValue(); + // Usar isTypeOf para determinar el estado let status: VerifyResult['status']; - - // Los valores del SAT para estado de solicitud (getValue retorna nĂºmero o string) - const codeNum = typeof statusCode === 'string' ? parseInt(statusCode, 10) : statusCode; - switch (codeNum) { - case 1: - status = 'pending'; - break; - case 2: - status = 'processing'; - break; - case 3: - status = 'ready'; - break; - case 4: - status = 'failed'; - break; - case 5: - status = 'rejected'; - break; - default: - status = 'pending'; + if (statusRequest.isTypeOf('Finished')) { + status = 'ready'; + } else if (statusRequest.isTypeOf('InProgress')) { + status = 'processing'; + } else if (statusRequest.isTypeOf('Accepted')) { + status = 'pending'; + } else if (statusRequest.isTypeOf('Failure')) { + status = 'failed'; + } else if (statusRequest.isTypeOf('Rejected')) { + status = 'rejected'; + } else { + status = 'pending'; } return {