fix(reports-transmission): migrar todos los métodos a api.post/get con silent refresh

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 <noreply@anthropic.com>
This commit is contained in:
2026-06-02 08:44:20 -05:00
parent 237ed17bdd
commit 4bbc93534c

View File

@@ -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;
}
};