import Vue from 'vue'
import axios from 'axios'

// const store = required('../store')

const service = axios.create({
  withCredentials: true,
  baseUrl: '/'
})

service.interceptors.request.use(config => {
  config.url = config.url || '/'
  if (process.server) {
    config.url = process.env.baseUrl + config.url
  }
  console.log(config)
  return config
}, error => {
  return Promise.reject(error)
})

service.interceptors.response.use(response => {
  const cookies = response.headers['set-cookie']
  if (cookies && cookies.length) {
    for (let i = 0; i < cookies.length; i++) {
      if (cookies[i].indexOf('JSESSIONID') > -1) {
        const sessionId = cookies[i]
        const first = sessionId.indexOf(';')
        const second = sessionId.lastIndexOf(';')
        const newSessionId = sessionId.replace(sessionId.substring(first, second), '')
        store.commit('option/SET_SESSION_ID', newSessionId)
        break
      }
    }
  }
  return response
}, error => {
  return Promise.reject(error)
})

Vue.prototype.$http = service
export default service
