Advertisement
ahmadandika

Untitled

Nov 3rd, 2020
728
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import axios from 'axios';
  2. import { Service } from 'axios-middleware';
  3. import iziToast from 'izitoast';
  4. import { removeCookies } from './local';
  5.  
  6. const requestMiddleware = () => {
  7.   const service = new Service(axios);
  8.   service.register({
  9.     onRequest(config) {
  10.       //   console.log('onRequest');
  11.       return config;
  12.     },
  13.     onSync(promise) {
  14.       //   console.log('onSync');
  15.       return promise;
  16.     },
  17.     onResponse(response, error) {
  18.       //   console.log('onResponse', response, error);
  19.       return response;
  20.     },
  21.     onResponseError(error) {
  22.       // handle the response error
  23.       const { pathname } = window.location;
  24.  
  25.       const page = ['/', '/login'];
  26.  
  27.       if (!page.includes(pathname)) {
  28.         if (error.response.status === 401) {
  29.           removeCookies();
  30.           window.location.href = '/login';
  31.         } else if (error.response.data.trim() === 'Invalid token') {
  32.           removeCookies();
  33.           window.location.href = '/login';
  34.         } else if (
  35.           error.response.status === 500 ||
  36.           error.response.status === 502
  37.         ) {
  38.           iziToast.error({
  39.             title: 'Error',
  40.             position: 'topRight',
  41.             message: 'Internal Server Error'
  42.           });
  43.         }
  44.       }
  45.  
  46.       throw error;
  47.     }
  48.   });
  49. };
  50.  
  51. export default requestMiddleware;
  52.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement