import { client } from '@/services/client' export default function({ store }) { // Create a request interceptor to add the authorization token to every // request if the user is authenticated. client.interceptors.request.use(config => { if (store.getters['auth/isAuthenticated']) { const token = store.getters['auth/token'] config.headers.Authorization = `JWT ${token}` } return config }) // Create a response interceptor to add more detail tot the error message // and to create a notification when there is a network error. client.interceptors.response.use( response => { return response }, error => { error.responseError = undefined error.responseDetail = undefined // Add the error message in the response to the error object. if ( error.response && 'error' in error.response.data && 'detail' in error.response.data ) { error.responseError = error.response.data.error error.responseDetail = error.response.data.detail } // Network error, the server could not reached if (!error.response) { store.dispatch('notification/error', { title: 'Network error', message: 'Could not connect to the API server.' }) } return Promise.reject(error) } ) }