Files
cssd-back/resources/js/vue/services/global/errorHandler.service.js
T

45 lines
1.3 KiB
JavaScript
Vendored

import axios from "axios";
import toast from "./toast.service";
import {TokenService, ApiService} from '@/services';
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)) {
toast.error(error.response.data.errors[key]);
}
}
}
if(error.response.status == 401) {
TokenService.removeToken();
TokenService.removeRefreshToken();
TokenService.removeInfo();
ApiService.removeAuthHeader();
}
}
}
function successHandler(response) {
if(response.data == 200) {
if(typeof response.data.message !== 'undefined') {
toast.success(response.data.message);
}
}
return response;
}
// apply interceptor on response
axios.interceptors.response.use(successHandler, errorResponseHandler);
export default errorResponseHandler;