import axios from "axios";
import { getAccessToken } from "./getAccessToken";
import { logoutUser } from "@/lib/logoutUser";
const instance = axios.create({
  baseURL: process.env.NEXT_PUBLIC_API_ENDPOINT,
  headers: {
    "Content-Type": "application/json",
  },
});

instance.interceptors.request.use(
  async (config) => {
    const session = await getAccessToken();

    if (session) {
      config.headers.Authorization = `Bearer ${session}`;
    }

    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

instance.interceptors.response.use(
  (response) => {
    return response;
  },
  (error) => {
    const status = error.response?.status;

    if (status === 401) {
      logoutUser();
    }
    return Promise.reject(error);
  }
);

export default instance;
