You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
willaengine/resources/js/services/global/errorHandler.service.js

50 lines
1.6 KiB

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;