UNPKG

bnk-components

Version:

Reusable React components for Issaglam UI - Modern, responsive UI components with TypeScript support

56 lines (55 loc) 1.86 kB
import axios from 'axios'; const getBaseUrl = () => { if (process.env.NODE_ENV === 'development') { return process.env.REACT_APP_API_URL_DEV || 'https://localhost:7282'; } else if (process.env.NODE_ENV === 'test') { return process.env.REACT_APP_API_URL_TEST || 'https://localhost:7282'; } else { return process.env.REACT_APP_API_URL_PROD || 'https://api.issaglam.com'; } }; console.log('API Base URL:', getBaseUrl()); const api = axios.create({ baseURL: getBaseUrl(), timeout: 99999, headers: { 'Content-Type': 'application/json', } }); // Request interceptor - token ekleme api.interceptors.request.use((config) => { var _a; console.log('API Request:', (_a = config.method) === null || _a === void 0 ? void 0 : _a.toUpperCase(), config.url); console.log('Request Config:', config); const token = localStorage.getItem('authToken'); if (token && config.headers) { config.headers.Authorization = `Bearer ${token}`; } return config; }, (error) => { console.error('Request Error:', error); return Promise.reject(error); }); // Response interceptor - oturum kontrolü ve hata yönetimi api.interceptors.response.use((response) => { console.log('API Response:', response.status, response.config.url); return response; }, (error) => { console.error('API Error Details:', { message: error.message, code: error.code, response: error.response, request: error.request, config: error.config }); if (error.response && error.response.status === 401) { // Token'ı temizle localStorage.removeItem('authToken'); // Oturum düştü, event fırlat window.dispatchEvent(new CustomEvent('session-expired')); } return Promise.reject(error); }); export default api;