import axios from 'axios'; 
 | 
import { API_BASE_URL, PREFIX_BASE_URL, TOKEN_HEADER_NAME, UN_AUTH_CODE } from '@/config/setting'; 
 | 
import { getToken, setToken, removeToken } from './token-util'; 
 | 
  
 | 
const service = axios.create({ 
 | 
    baseURL: API_BASE_URL + PREFIX_BASE_URL 
 | 
}); 
 | 
  
 | 
/** 
 | 
 * pre 
 | 
 */ 
 | 
service.interceptors.request.use( 
 | 
    (config) => { 
 | 
        const token = getToken(); 
 | 
        if (token && config.headers) { 
 | 
            config.headers[TOKEN_HEADER_NAME] = token; 
 | 
        } 
 | 
        return config; 
 | 
    }, 
 | 
    (error) => { 
 | 
        return Promise.reject(error); 
 | 
    } 
 | 
); 
 | 
  
 | 
/** 
 | 
 * post 
 | 
 */ 
 | 
service.interceptors.response.use( 
 | 
    (res) => { 
 | 
        if (res.data?.code === UN_AUTH_CODE) { 
 | 
            // alert('Token has expired, please log in again!'); 
 | 
            removeToken(); 
 | 
            return Promise.reject(new Error(res.data.message)); 
 | 
        } else { 
 | 
            const token = res.headers[TOKEN_HEADER_NAME.toLowerCase()]; 
 | 
            if (token) { 
 | 
                setToken(token); 
 | 
            } 
 | 
            return res; 
 | 
        } 
 | 
    }, 
 | 
    (error) => { 
 | 
        return Promise.reject(error); 
 | 
    } 
 | 
); 
 | 
  
 | 
export default service; 
 |