2018-09-10 09:55:26 -07:00
|
|
|
import axios from 'axios';
|
|
|
|
|
|
|
|
const instance = axios.create({
|
|
|
|
baseURL: process.env.BACKEND_URL,
|
|
|
|
headers: {},
|
2018-12-14 11:36:22 -08:00
|
|
|
// for session cookies
|
|
|
|
withCredentials: true,
|
2018-09-10 09:55:26 -07:00
|
|
|
});
|
|
|
|
|
2018-11-07 11:08:42 -08:00
|
|
|
instance.interceptors.response.use(
|
|
|
|
// Do nothing to responses
|
|
|
|
res => res,
|
|
|
|
// Try to parse error message if possible
|
|
|
|
err => {
|
|
|
|
if (err.response && err.response.data) {
|
|
|
|
// Our backend's handled error responses
|
|
|
|
if (err.response.data.message) {
|
|
|
|
err.message = err.response.data.message;
|
|
|
|
}
|
|
|
|
// Some flask middlewares return error data like this
|
|
|
|
if (err.response.data.data) {
|
|
|
|
err.message = err.response.data.data;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return Promise.reject(err);
|
|
|
|
},
|
|
|
|
);
|
|
|
|
|
2018-09-10 09:55:26 -07:00
|
|
|
export default instance;
|