// apiClient.js
import axios from 'axios';

// 创建一个自定义的axios实例
const apiClient = axios.create({
  baseURL: import.meta.env.VITE_APP_BASE_API_OTHER, // 你的基础URL
  timeout: 10000,
  headers: {'Content-Type': 'application/json'}
});

console.log(import.meta.env.VITE_APP_BASE_API_OTHER);

// 请求拦截器
apiClient.interceptors.request.use(
  config => {
    // 在发送请求之前做些什么，比如添加token
    // const token = localStorage.getItem('token'); // 假设token存储在localStorage中
    // if (token) {
    //   config.headers.Authorization = `Bearer ${token}`;
    // }
    return config;
  },
  error => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 响应拦截器
apiClient.interceptors.response.use(
  response => {
    // 对响应数据做点什么
    return response.data;
  },
  error => {
    // 对响应错误做点什么
    // if (error.response) {
    //   // 请求已发出但服务器响应的状态码不在2xx范围内
    //   console.error('Response Error:', error.response.data);
    //   console.error('Status Code:', error.response.status);
    //   console.error('Headers:', error.response.headers);
    // } else if (error.request) {
    //   // 请求已发出，但没有收到响应
    //   // console.error('Request Error:', error.request);
    // } else {
    //   // 一些设置请求时发生错误
    //   // console.error('Error:', error.message);
    // }
    return Promise.reject(error);
  }
);

// 对外暴露的方法

export function clientGet(endpoint, config = {}) {
  return apiClient.get(endpoint, config);
}

export function clientPost(endpoint, data, config = {}) {
  return apiClient.post(endpoint, data, config);
}

export function clientPut(endpoint, data, config = {}) {
  return apiClient.put(endpoint, data, config);
}

export function clientDelete(endpoint, config = {}) { // 'delete'是保留字，因此使用'del'
  return apiClient.delete(endpoint, config);
}
