mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-12 02:01:06 +03:30
50 lines
1.6 KiB
JavaScript
Vendored
50 lines
1.6 KiB
JavaScript
Vendored
import axios from "axios";
|
|
import toast from "./toast.service";
|
|
import {TokenService, ApiService} from '@/services';
|
|
import store from "@/store"
|
|
import router from '@/router'
|
|
function errorResponseHandler(error) {
|
|
|
|
// check for errorHandle config
|
|
if (
|
|
error.config.hasOwnProperty("errorHandle") &&
|
|
error.config.errorHandle === false
|
|
) {
|
|
return Promise.reject(error);
|
|
}
|
|
|
|
// if has response show the error
|
|
if (error.response) {
|
|
if(typeof error.response.data.errors !== 'undefined') {
|
|
for (const key in error.response.data.errors) {
|
|
if (error.response.data.errors.hasOwnProperty(key)) {
|
|
let title = (error.response.data.title) ? error.response.data.title : undefined;
|
|
toast.error(error.response.data.errors[key], title);
|
|
}
|
|
}
|
|
}
|
|
if(error.response.status == 401) {
|
|
TokenService.removeToken();
|
|
TokenService.removeRefreshToken();
|
|
TokenService.removeInfo();
|
|
ApiService.removeAuthHeader();
|
|
store.commit('auth/logoutSuccess', {}, {root: true})
|
|
router.push({ name: `Dashboard` });
|
|
}
|
|
|
|
}
|
|
}
|
|
function successHandler(response) {
|
|
if(response.status == 200) {
|
|
if(typeof response.data.message !== 'undefined') {
|
|
toast.success(response.data.message, response.data.title);
|
|
}
|
|
}
|
|
return response;
|
|
}
|
|
|
|
// apply interceptor on response
|
|
axios.interceptors.response.use(successHandler, errorResponseHandler);
|
|
|
|
export default errorResponseHandler;
|