40 lines
966 B
JavaScript
40 lines
966 B
JavaScript
import axios from 'axios'
|
|
import { Message } from 'element-ui'
|
|
|
|
// create an axios instance
|
|
const service = axios.create({
|
|
timeout: 60000 // request timeout
|
|
})
|
|
|
|
const isJson = ({ headers }) => headers['content-type'].includes('application/json')
|
|
|
|
// response interceptor
|
|
service.interceptors.response.use(
|
|
response => response,
|
|
error => {
|
|
console.log(`Error ${error}`)
|
|
|
|
if (!error.response) {
|
|
Message({
|
|
message: error,
|
|
type: 'error',
|
|
duration: 5 * 1000
|
|
})
|
|
} else {
|
|
const errors = Array.isArray(error.response.data) ? error.response.data : [error.response.data]
|
|
errors.forEach(errorData => {
|
|
const edata = errorData.error || errorData
|
|
Message({
|
|
message: isJson(error.response) ? `${error.message} - ${edata}` : `${error.message}`,
|
|
type: 'error',
|
|
duration: 5 * 1000
|
|
})
|
|
})
|
|
}
|
|
|
|
return Promise.reject(error)
|
|
}
|
|
)
|
|
|
|
export default service
|