import axios from 'axios'; import { toast } from "react-toastify"; export default class RequestApi { // static Request() { // // axios.interceptors.request.use(function (config) { // // const token = localStorage.getItem('token') // // config.headers.Authorization = token; // // return config; // // }); // const token = localStorage.getItem('token') // let instance = axios.create({ // headers: { // 'Content-Type': 'application/json', // "Authorization": `Bearer ${token}` // } // }) // instance.interceptors.response.use( // (response) => response, // async (error) => { // // const originalRequest = error.config; // if (error.response.status === 307 || error.response.status === 403) { // console.log(error.response); // } // return Promise.reject(error); // } // ); // return instance; // } static Request() { axios.interceptors.response.use( response => response, async (error) => { // console.log('error axios', JSON.stringify(error)); if (error) { // console.log('stringify', JSON.stringify(error)); const err = JSON.parse(JSON.stringify(error)); console.log('error', err); if (err.name === 'AxiosError' && err.code === 'ERR_NETWORK') { alert(err.message); return; } if (err.response) { if (err.response.status === 307 || err.response.status === 403 || err.response.status === 401) { // console.log(err.response); // alert('Token expired, please re-login'); toast.error("Token expired, please re-login"); // clearAllState(); window.localStorage.clear(); window.location.reload(); // this.props.history.replace('/login'); return; } } if (err && err.message && err.message.includes('401')) { // alert('Token expired, please re-login'); toast.error("Token expired, please re-login"); // clearAllState(); window.localStorage.clear(); window.location.reload(); // this.props.history.replace('/login'); return; } return Promise.reject(error); } } ); return axios; } static Header() { let header = { headers: { "Content-Type": "application/json", // 'Cache-Control': 'no-cache' } } return header; } static HeaderWithToken() { const token = localStorage.getItem('token') let header = { headers: { "Content-Type": "application/json", "Authorization": `Bearer ${token}`, // 'Cache-Control': 'no-cache', } } return header; } static HeaderMultipart() { const token = localStorage.getItem('token') let header = { headers: { "Content-Type": "multipart/form-data", "Authorization": `Bearer ${token}`, // 'Cache-Control': 'no-cache', } } return header; } } export const AXIOS = RequestApi.Request();