1- import { host , restApiRoot , port } from '~/server/config.json' ;
1+ import { host , restApiRoot , port } from '~/server/config.json' ;
22import axios from 'axios' ;
33
44const Storage = window . localStorage ;
@@ -30,6 +30,15 @@ const http = axios.create({
3030 baseURL : `http://${ host } :${ port } ${ restApiRoot } ` ,
3131} ) ;
3232
33+ // Current setLoading function
34+ let setLoading = ( ) => {
35+ throw Error ( 'setLoadingFunction not defined' ) ;
36+ } ;
37+
38+ http . setLoadingFunction = ( fn ) => {
39+ setLoading = fn ;
40+ } ;
41+
3342http . setToken = ( token , save = true ) => {
3443 http . token = token ;
3544 http . defaults . headers . common . Authorization = token . id ;
@@ -41,9 +50,10 @@ http.removeToken = () => {
4150 removeTokenFromLocalStorage ( ) ;
4251} ;
4352
44- http . find = ( endpoint , filter ) => http . get ( endpoint , { params : { filter} } ) ;
53+ http . find = ( endpoint , filter ) => http . get ( endpoint , { params : { filter } } ) ;
4554
46- const interceptErrors = ( err ) => {
55+ /* Response Interceptors */
56+ const interceptResErrors = ( err ) => {
4757 try {
4858 err = Object . assign ( new Error ( ) , err . response . data . error ) ;
4959 } catch ( e ) {
@@ -52,17 +62,28 @@ const interceptErrors = (err) => {
5262 return Promise . reject ( err ) ;
5363} ;
5464const interceptResponse = ( res ) => {
65+ // console.log('response', res.config);
66+ setLoading ( false , res . config . uid ) ;
5567 try {
5668 return res . data ;
5769 } catch ( e ) {
5870 return res ;
5971 }
6072} ;
61- http . interceptors . response . use ( interceptResponse , interceptErrors ) ;
73+ http . interceptors . response . use ( interceptResponse , interceptResErrors ) ;
6274
6375// Set storage Token in http if exists
6476addTokenFromLocalStorage ( http ) ;
6577
78+ /* Request Interceptors */
79+ const interceptReqErrors = err => Promise . reject ( err ) ;
80+ const interceptRequest = ( config ) => {
81+ config . uid = setLoading ( true ) ;
82+ // console.log('request', config);
83+ return config ;
84+ } ;
85+ http . interceptors . request . use ( interceptRequest , interceptReqErrors ) ;
86+
6687export default http ;
6788
6889// Documentation: https://github.com/axios/axios
0 commit comments