1 changed files with 28 additions and 23 deletions
@ -1,44 +1,49 @@ |
|||||
import axios from 'axios' |
import axios from "axios"; |
||||
|
|
||||
const instance = axios.create({ |
const instance = axios.create({ |
||||
baseURL: import.meta.env.VITE_API_URL || 'http://localhost:5091/api/god/', |
baseURL: import.meta.env.VITE_API_URL || "http://localhost:5091/api/god/", |
||||
timeout: 10000, |
timeout: 10000, |
||||
headers: { |
headers: { |
||||
'Content-Type': 'application/json' |
"Content-Type": "application/json", |
||||
} |
}, |
||||
}) |
}); |
||||
|
|
||||
instance.interceptors.request.use( |
instance.interceptors.request.use( |
||||
(config) => { |
(config) => { |
||||
const token = localStorage.getItem('auth_token') |
const token = localStorage.getItem("auth_token"); |
||||
if (token) { |
if (token) { |
||||
config.headers.Authorization = `Bearer ${token}` |
config.headers.Authorization = `Bearer ${token}`; |
||||
} |
} |
||||
return config |
return config; |
||||
}, |
}, |
||||
(error) => Promise.reject(error) |
(error) => Promise.reject(error), |
||||
) |
); |
||||
|
|
||||
instance.interceptors.response.use( |
instance.interceptors.response.use( |
||||
(response) => response.data, |
(response) => response.data, |
||||
(error) => { |
(error) => { |
||||
if (error.response?.status === 401) { |
if (error.response?.status === 401) { |
||||
localStorage.removeItem('auth_token') |
localStorage.removeItem("auth_token"); |
||||
localStorage.removeItem('user') |
localStorage.removeItem("user"); |
||||
window.location.href = '/login' |
window.location.href = "/login"; |
||||
} |
} |
||||
if (error.code === 'ERR_NETWORK' || error.code === 'ECONNABORTED' || !error.response) { |
if (error.response?.status === 404) { |
||||
window.location.href = '/404' |
window.location.href = "/404"; |
||||
} |
} |
||||
const responseData = error.response?.data |
const responseData = error.response?.data; |
||||
if (typeof responseData === 'string') { |
if (typeof responseData === "string") { |
||||
return Promise.reject({ data: responseData, message: responseData }) |
return Promise.reject({ data: responseData, message: responseData }); |
||||
} |
} |
||||
if (responseData?.message) { |
if (responseData?.message) { |
||||
return Promise.reject({ data: responseData.message, message: responseData.message }) |
return Promise.reject({ |
||||
|
data: responseData.message, |
||||
|
message: responseData.message, |
||||
|
}); |
||||
} |
} |
||||
return Promise.reject(error.response?.data || { data: error.message, message: error.message }) |
return Promise.reject( |
||||
} |
error.response?.data || { data: error.message, message: error.message }, |
||||
) |
); |
||||
|
}, |
||||
|
); |
||||
|
|
||||
export default instance |
export default instance; |
||||
|
|||||
Loading…
Reference in new issue