import axios from "axios";

// 鍒涘缓axios瀹炰緥
const instance = axios.create({
  // axios涓姹傞厤缃湁baseURL閫夐」锛岃〃绀鸿姹俇RL鍏叡閮ㄥ垎
  baseURL: process.env.VUE_APP_API_ROOT,
  timeout: 60000,
});

instance.interceptors.request.use(
  async (config) => {
    // config.headers["skip-ip-validation"] = 1;
    let dispatchToken = localStorage.getItem("dispatchToken");
    if (dispatchToken) {
      config.headers.dispatchToken = dispatchToken;
    }
    let accessToken = localStorage.getItem("accessToken");
    if (accessToken) {
      config.headers.accessToken = accessToken;
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

instance.interceptors.response.use((response) => {
  const { status, data } = response;
  if (status === 200) {
    const { url } = response.config;
    if (url.indexOf("json") > -1) {
      // mock api
      return data;
    } else {
      return data.data;
    }
  }
});

export default instance;