Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import axios from 'axios';
- import { Service } from 'axios-middleware';
- import iziToast from 'izitoast';
- import { removeCookies } from './local';
- const requestMiddleware = () => {
- const service = new Service(axios);
- service.register({
- onRequest(config) {
- // console.log('onRequest');
- return config;
- },
- onSync(promise) {
- // console.log('onSync');
- return promise;
- },
- onResponse(response, error) {
- // console.log('onResponse', response, error);
- return response;
- },
- onResponseError(error) {
- // handle the response error
- const { pathname } = window.location;
- const page = ['/', '/login'];
- if (!page.includes(pathname)) {
- if (error.response.status === 401) {
- removeCookies();
- window.location.href = '/login';
- } else if (error.response.data.trim() === 'Invalid token') {
- removeCookies();
- window.location.href = '/login';
- } else if (
- error.response.status === 500 ||
- error.response.status === 502
- ) {
- iziToast.error({
- title: 'Error',
- position: 'topRight',
- message: 'Internal Server Error'
- });
- }
- }
- throw error;
- }
- });
- };
- export default requestMiddleware;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement