import axios, { AxiosError } from 'axios'; // Crea una instancia de Axios const instance = axios.create({ baseURL: 'https://tu-dominio.com', // Aquí puedes añadir más configuraciones si es necesario }); // Simula un error 503 en todas las respuestas utilizando un interceptor instance.interceptors.response.use( response => { // Crea un error de Axios simulado const axiosError = new AxiosError( "Service Unavailable", // mensaje de error "ECONNABORTED", // código de error, este es un ejemplo, puede ajustarlo según sea necesario undefined, // config, puedes añadir la configuración de la solicitud aquí si es necesario undefined, // request, puedes añadir la solicitud aquí si es necesario { // response, aquí construyes la respuesta simulada status: 503, statusText: 'Service Unavailable', headers: response.headers, config: response.config, data: 'Service Unavailable' } ); // Rechaza la promesa con el error de Axios simulado return Promise.reject(axiosError); }, error => { // Este bloque maneja errores reales de las peticiones return Promise.reject(error); } ); export const extractName = async ( text: TExtractNamePayload ): Promise<{ data: TExtractNameResponse; status: number }> => { instance.defaults.headers['Authorization'] = `Bearer ${process.env.EXPO_PUBLIC_SERVER_SECRET_KEY}`; try { const response = await instance.post<TExtractNameResponse>('/api/v1/conversation/entity-extraction/names', text); return { data: response.data, status: response.status }; } catch (error) { if (axios.isAxiosError(error)) { // Aquí capturas el error simulado o real y lo devuelves return { data: error.response?.data, status: error.response?.status }; } // Manejo de otros tipos de errores throw error; } };