import axios from "axios"; import { TokenService } from "@Global/services/storage.services"; import ApiService from "@Global/services/api.services"; import store from "@Core/store/index"; import commonRoute from "@Global/utils/common/routes"; import toast from "./toast.service"; 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(error.response.status == 401) { TokenService.removeToken(); ApiService.removeAuthHeader(); store.commit('auth/logout', {}, {root: true}); if (commonRoute.login() != window.location.pathname) { window.location.href = commonRoute.login(); } toast.error('نام کاربری یا رمز عبور اشتباه است', 'خطا'); } else if(error.response.status == 422) { 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], 'خطا'); } } } } else if(error.response.status == 500) { toast.error('مشکل از سمت سرور', 'خطا'); } } } function successHandler(response) { if(response.status == 200 || response.status == 201) { if(typeof response.data.message !== 'undefined' && typeof response.data.message.content !== 'undefined') { toast.success(response.data.message.content, response.data.message.title || 'موفق'); } } return response; } // apply interceptor on response axios.interceptors.response.use(successHandler, errorResponseHandler); export default errorResponseHandler;