import axios from 'axios' const api = axios.create({ baseURL: '/api', timeout: 30000, }) api.interceptors.request.use((config) => { const token = localStorage.getItem('token') if (token) { config.headers.Authorization = `Bearer ${token}` } return config }) api.interceptors.response.use( (response) => response, (error) => { if (error.response?.status === 401) { localStorage.removeItem('token') localStorage.removeItem('username') window.location.href = '/login' } return Promise.reject(error) } ) export const authApi = { login: (username: string, password: string) => api.post('/auth/login', { username, password }), } export const dashboardApi = { getDashboard: () => api.get('/dashboard'), } export const cardsApi = { getCards: (params?: Record) => api.get('/cards', { params }), createCard: (data: Record) => api.post('/cards', data), getCard: (id: string) => api.get(`/cards/${id}`), getCardDetails: (id: string) => api.get(`/cards/${id}/details`), updateCard: (id: string, data: Record) => api.put(`/cards/${id}`, data), } export const cardholdersApi = { getCardholders: (params?: Record) => api.get('/cardholders', { params }), createCardholder: (data: Record) => api.post('/cardholders', data), } export const transactionsApi = { getTransactions: (params?: Record) => api.get('/transactions', { params }), } export const authorizationsApi = { getAuthorizations: (params?: Record) => api.get('/authorizations', { params }), } export const tokensApi = { getTokens: () => api.get('/tokens'), createToken: (data: Record) => api.post('/tokens', data), deleteToken: (id: string) => api.delete(`/tokens/${id}`), } // Alias for components that import cardholderApi (singular) export const cardholderApi = { list: (params?: Record) => api.get('/cardholders', { params }), create: (data: Record) => api.post('/cardholders', data), } export const settingsApi = { getSettings: () => api.get('/settings'), updateSettings: (data: { key: string; value: string }[]) => api.put('/settings', data), testConnection: () => api.post('/settings/test-connection'), } export const cardLogsApi = { getCardLogs: (params?: Record) => api.get('/card-logs', { params }), } export const auditLogsApi = { getAuditLogs: (params?: Record) => api.get('/audit-logs', { params }), } export default api