Axios Config

We are using the Axios to make an API call. Here is the global Axios configuration.

We are using the Axios to make an API call. Here is the global Axios configuration. You can find it on this path src/@crema/services/auth/jwt-auth/index.js

import axios from '@crema/services/axios';

const jwtAxios = axios?.create({
  baseURL: 'https://cremaapi.pythonanywhere.com/api/', //YOUR_API_URL HERE
  headers: {
    'Content-Type': 'application/json',
  },
});
jwtAxios.interceptors.response.use(
  (res) => res,
  (err) => {
    if (err.response && err.response.data.msg === 'Token is not valid') {
      console.log('Need to logout user');
      // store.dispatch({type: LOGOUT});
    }
    return Promise.reject(err);
  },
);
export const setAuthToken = (token) => {
  if (token) {
    jwtAxios.defaults.headers.common['Authorization'] = 'Bearer ' + token;
    localStorage.setItem('token', token);
  } else {
    delete jwtAxios.defaults.headers.common['Authorization'];
    localStorage.removeItem('token');
  }
};

export default jwtAxios;

We are using the mock APIs in our app, to get the fake data from the Crema fake DB. We are using axios-mock-adapter to achieve this. Here is the configuration of it. you can find out this file here src/@crema/mockapi/apis/MockConfig.js

import axios from '@crema/services/axios';

// eslint-disable-next-line @typescript-eslint/no-var-requires
const MockAdapter = require('axios-mock-adapter');

export default new MockAdapter(axios, {delayResponse: 200});