checkpoint/backup-fail-server

This commit is contained in:
hreyes
2026-02-05 12:35:03 -06:00
parent 8e53293e62
commit 4cc613d1df
7 changed files with 234 additions and 75 deletions

View File

@@ -156,7 +156,7 @@ export async function authenticatedFetch(
}
// Construir URL completa
const url = endpoint.startsWith('http') ? endpoint : `${baseUrl}${endpoint}`;
const url = endpoint.startsWith('http') ? endpoint : `${baseUrl}${endpoint}`;
// Crear AbortController para timeout
const controller = new AbortController();
@@ -171,7 +171,7 @@ export async function authenticatedFetch(
const headers = isFormData
? { 'Authorization': `Bearer ${accessToken}`, ...(options.headers as Record<string, string> || {}) }
: createAuthHeaders(accessToken, options.headers as Record<string, string>);
let response = await fetch(url, {
...options,
headers,
@@ -202,7 +202,7 @@ export async function authenticatedFetch(
const newHeaders = isFormData
? { 'Authorization': `Bearer ${newToken}`, ...(options.headers as Record<string, string> || {}) }
: createAuthHeaders(newToken, options.headers as Record<string, string>);
response = await fetch(url, {
...options,
headers: newHeaders,
@@ -263,7 +263,7 @@ export async function validateAuth(
}
const keycloakData = await response.json();
// Obtener perfil adicional del usuario (avatar, bio, etc.)
try {
const profileResponse = await authenticatedFetch(
@@ -272,7 +272,7 @@ export async function validateAuth(
cookies,
fetch
);
if (profileResponse.ok) {
const profileData = await profileResponse.json();
// Combinar datos de Keycloak con datos del perfil
@@ -287,7 +287,7 @@ export async function validateAuth(
} catch (profileError) {
console.warn('⚠️ [API] No se pudo cargar el perfil del usuario, usando solo datos de Keycloak');
}
return keycloakData;
} catch (error) {
// Si es un redirect, re-lanzarlo
@@ -365,14 +365,14 @@ export async function handleApiResponse<T = any>(
if (response.status === 204) {
return { data: null as T };
}
const data = await response.json();
return { data };
}
// Manejar errores
const errorData = await response.json().catch(() => ({ detail: 'Error desconocido' }));
const error = {
detail: errorData.detail || errorData.message || 'Error en la petición',
status: response.status,