From 4bbc93534c355a60e1909fb51b7098d72e7e02b4 Mon Sep 17 00:00:00 2001 From: Kevin_Ramirez Date: Tue, 2 Jun 2026 08:44:20 -0500 Subject: [PATCH] =?UTF-8?q?fix(reports-transmission):=20migrar=20todos=20l?= =?UTF-8?q?os=20m=C3=A9todos=20a=20api.post/get=20con=20silent=20refresh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Todos los métodos del archivo usaban fetch() directo con localStorage, bypaseando el silent refresh automático. Ahora todos usan api.post()/api.get() de $lib/api para manejo uniforme de 401 → refresh → retry en toda la interfaz. Co-Authored-By: Claude Opus 4.7 --- .../a76/reports/reports-transmission.ts | 180 ++---------------- 1 file changed, 21 insertions(+), 159 deletions(-) diff --git a/frontend/src/lib/api/dashboard/a76/reports/reports-transmission.ts b/frontend/src/lib/api/dashboard/a76/reports/reports-transmission.ts index cdf27443..5b3283a4 100644 --- a/frontend/src/lib/api/dashboard/a76/reports/reports-transmission.ts +++ b/frontend/src/lib/api/dashboard/a76/reports/reports-transmission.ts @@ -1,169 +1,41 @@ import { api } from '$lib/api'; -const BASE_URL = import.meta.env.VITE_API_URL || ''; - export const reportsTransmissionApi = { triggerGeneration: async (request: any) => { - const endpoint = `${BASE_URL}/v1/a76/reports/exportacion/transmission/generate`; - - const token = localStorage.getItem('access_token'); - const response = await fetch(endpoint, { - method: 'POST', - headers: { - 'Authorization': `Bearer ${token}`, - 'Content-Type': 'application/json' - }, - body: JSON.stringify(request) - }); - - if (!response.ok) { - let errorMessage = 'Error al iniciar la generación del archivo de transmisión'; - try { - const errorData = await response.json(); - errorMessage = errorData.detail || errorData.message || errorMessage; - } catch (e) { - try { - const text = await response.text(); - if (text) errorMessage = text; - } catch (e2) {} - } - throw new Error(errorMessage); - } - return await response.json(); + const result = await api.post('/v1/a76/reports/exportacion/transmission/generate', request); + if (result.error || !result.data) throw new Error(result.error || 'Error al iniciar la generación del archivo de transmisión'); + return result.data; }, getTaskStatus: async (taskId: string) => { - const endpoint = `${BASE_URL}/v1/a76/reports/exportacion/transmission/tasks/${taskId}`; - - const token = localStorage.getItem('access_token'); - const response = await fetch(endpoint, { - method: 'GET', - headers: { 'Authorization': `Bearer ${token}` } - }); - - if (!response.ok) { - let errorMessage = 'Error al consultar estado de la transmisión'; - try { - const errorData = await response.json(); - errorMessage = errorData.detail || errorData.message || errorMessage; - } catch (e) { - try { - const text = await response.text(); - if (text) errorMessage = text; - } catch (e2) {} - } - throw new Error(errorMessage); - } - return await response.json(); + const result = await api.get(`/v1/a76/reports/exportacion/transmission/tasks/${taskId}`); + if (result.error || !result.data) throw new Error(result.error || 'Error al consultar estado de la transmisión'); + return result.data; }, triggerTemporalGeneration: async (request: any) => { - const endpoint = `${BASE_URL}/v1/a76/reports/importacion/transmission/temporal/generate`; - - const token = localStorage.getItem('access_token'); - const response = await fetch(endpoint, { - method: 'POST', - headers: { - 'Authorization': `Bearer ${token}`, - 'Content-Type': 'application/json' - }, - body: JSON.stringify(request) - }); - - if (!response.ok) { - let errorMessage = 'Error al iniciar la generación temporal'; - try { - const errorData = await response.json(); - errorMessage = errorData.detail || errorData.message || errorMessage; - } catch (e) { - try { - const text = await response.text(); - if (text) errorMessage = text; - } catch (e2) {} - } - throw new Error(errorMessage); - } - return await response.json(); + const result = await api.post('/v1/a76/reports/importacion/transmission/temporal/generate', request); + if (result.error || !result.data) throw new Error(result.error || 'Error al iniciar la generación temporal'); + return result.data; }, getTemporalTaskStatus: async (taskId: string) => { - const endpoint = `${BASE_URL}/v1/a76/reports/importacion/transmission/temporal/tasks/${taskId}`; - - const token = localStorage.getItem('access_token'); - const response = await fetch(endpoint, { - method: 'GET', - headers: { 'Authorization': `Bearer ${token}` } - }); - - if (!response.ok) { - let errorMessage = 'Error al consultar estado de la transmisión temporal'; - try { - const errorData = await response.json(); - errorMessage = errorData.detail || errorData.message || errorMessage; - } catch (e) { - try { - const text = await response.text(); - if (text) errorMessage = text; - } catch (e2) {} - } - throw new Error(errorMessage); - } - return await response.json(); + const result = await api.get(`/v1/a76/reports/importacion/transmission/temporal/tasks/${taskId}`); + if (result.error || !result.data) throw new Error(result.error || 'Error al consultar estado de la transmisión temporal'); + return result.data; }, triggerDefinitiveGeneration: async (request: any) => { - const endpoint = `${BASE_URL}/v1/a76/reports/importacion/transmission/definitive/generate`; - - const token = localStorage.getItem('access_token'); - const response = await fetch(endpoint, { - method: 'POST', - headers: { - 'Authorization': `Bearer ${token}`, - 'Content-Type': 'application/json' - }, - body: JSON.stringify(request) - }); - - if (!response.ok) { - let errorMessage = 'Error al iniciar la generación definitiva'; - try { - const errorData = await response.json(); - errorMessage = errorData.detail || errorData.message || errorMessage; - } catch (e) { - try { - const text = await response.text(); - if (text) errorMessage = text; - } catch (e2) {} - } - throw new Error(errorMessage); - } - return await response.json(); + const result = await api.post('/v1/a76/reports/importacion/transmission/definitive/generate', request); + if (result.error || !result.data) throw new Error(result.error || 'Error al iniciar la generación definitiva'); + return result.data; }, getDefinitiveTaskStatus: async (taskId: string) => { - const endpoint = `${BASE_URL}/v1/a76/reports/importacion/transmission/definitive/tasks/${taskId}`; - - const token = localStorage.getItem('access_token'); - const response = await fetch(endpoint, { - method: 'GET', - headers: { 'Authorization': `Bearer ${token}` } - }); - - if (!response.ok) { - let errorMessage = 'Error al consultar estado de la transmisión definitiva'; - try { - const errorData = await response.json(); - errorMessage = errorData.detail || errorData.message || errorMessage; - } catch (e) { - try { - const text = await response.text(); - if (text) errorMessage = text; - } catch (e2) {} - } - throw new Error(errorMessage); - } - return await response.json(); + const result = await api.get(`/v1/a76/reports/importacion/transmission/definitive/tasks/${taskId}`); + if (result.error || !result.data) throw new Error(result.error || 'Error al consultar estado de la transmisión definitiva'); + return result.data; }, triggerXmlRbSystemsImpoTemp: async (request: { invoice_numbers: string[]; entry_port?: string; exit_port?: string }) => { @@ -191,18 +63,8 @@ export const reportsTransmissionApi = { }, triggerXmlOptimaExpo: async (request: { manifest_numbers: string[]; consolidar_partidas?: boolean }) => { - const endpoint = `${BASE_URL}/v1/a76/reports/xml-optima/exportacion/generate`; - const token = localStorage.getItem('access_token'); - const response = await fetch(endpoint, { - method: 'POST', - headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' }, - body: JSON.stringify(request) - }); - if (!response.ok) { - let errorMessage = 'Error al generar XML Optima (exportación)'; - try { errorMessage = (await response.json()).detail || errorMessage; } catch (e) {} - throw new Error(errorMessage); - } - return await response.json(); + const result = await api.post('/v1/a76/reports/xml-optima/exportacion/generate', request); + if (result.error || !result.data) throw new Error(result.error || 'Error al generar XML Optima (exportación)'); + return result.data; } };