Preview:
import axios, { AxiosRequestConfig } from "axios";
import Axios from "axios";

const instance = axios.create({
  baseURL: 'http://localhost:5555/',
  timeout: 60000,
});

// const logOut = () => {
//   // Clear user-related data from localStorage/sessionStorage
//   localStorage.removeItem('authToken');
//   localStorage.removeItem('refreshToken');
//   persisterStore.purge(); // Purge persisted Redux store if needed

//   // Optionally dispatch a Redux action to clear user state
//   store.dispatch({ type: 'LOGOUT' });

//   // Redirect to login page or any other route
//   window.location.href = '/login';
// };

export const apiServices = {
  postData: async (requestUrl, payload) => {
    const token = localStorage.getItem("yestoken");
    try {
      const response = await instance.post(`${requestUrl}`, payload, {
        headers: { Authorization: `Bearer ${token}` },
      });
      // if (response.data.message === 'TOKEN IS EXPIRED') {
      //   logOut();
      // }
      return response;
    } catch (error) {
      console.error("Error during POST request:", error);
      return error.response;
    }
  },
  fetchData: async (requestUrl, params) => {
    const token = localStorage.getItem("yestoken");
    try {
      // Perform the GET request
      const response = await instance.get(`${requestUrl}`, {
        params,
        headers: { Authorization: `Bearer ${token}` },
      });
      return response;
    } catch (error) {
      console.error("Error during GET request:", error);
      throw error;
    }
  },
  changeData: async (requestUrl, payload) => {
    const token = localStorage.getItem("yestoken");
    console.warn("()()change-put", token);
    try {
      // Perform the PUT request
      const response = await instance.put(`${requestUrl}`, payload, {
        headers: { Authorization: `Bearer ${token}` },
      });
      return response;
    } catch (error) {
      console.error("Error during PUT request:", error);
      throw error;
    }
  },
  deleteData: async (requestUrl, params) => {
    const token = localStorage.getItem("yestoken");
    console.warn("()()delete-delete", token);
    try {
      const response = await instance.delete(`${requestUrl}`, {
        params,
        headers: { Authorization: `Bearer ${token}` },
      });
      return response;
    } catch (error) {
      console.error("Error during DELETE request:", error);
      throw error;
    }
  },
  deleteDataPayload: async (requestUrl, payload) => {
    const token = localStorage.getItem("yestoken");
    try {
      const response = await Axios.delete(requestUrl, {
        headers: {
          Authorization: `Bearer ${token}`,
        },
        data: payload,
      });
      return response;
    } catch (error) {
      console.error("Error during DELETE request:", error);
      throw error;
    }
  },
  updateData: async (requestUrl, payload) => {
    const token = localStorage.getItem("yestoken");
    console.warn("()()update-patch", token);
    try {
      const response = await instance.patch(`${requestUrl}`, payload, {
        headers: { Authorization: `Bearer ${token}` },
      });
      return response;
    } catch (error) {
      console.error("Error during PATCH request:", error);
      throw error;
    }
  },
};
downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter