import axios from 'axios'

// eslint-disable-next-line no-undef
const Message = {
  error: (msg) => {
    console.log('Message.error', msg)
  }
}

function genServer(baseURL) {
  const serves = axios.create({
    baseURL: baseURL,
    timeout: 60 * 1000
  })
  
  // 设置请求发送之前的拦截器
  serves.interceptors.request.use(config => {
    // 设置发送之前数据需要做什么处理
    return config
  }, err => Promise.reject(err))
  
  // 设置请求接受拦截器
  serves.interceptors.response.use(res => {
    // console.log('res = ', res)
    // 设置接受数据之后，做什么处理
    // if (res.data.errmsg !== '') {
    if (res.data.status !== 200) {
      Message.error(res.data)
      Promise.reject(res.data)
    }
    return res.data
  }, err => {
    // 判断请求异常信息中是否含有超时timeout字符串
    if (err.message.includes('timeout')) {
      console.log('错误回调', err.message)
      Message.error('网络超时')
    }
    if (err.message.includes('Network Error')) {
      console.log('错误回调', err.message)
      Message.error('服务端未启动，或网络连接错误')
    }
    return Promise.reject(err)
  })

  return serves
}

export { genServer }
