import axios from "axios";
import { sso } from "roboflex-thalamus-sso-lib";

const api = axios.create({
  baseURL: process.env.VUE_APP_ROOT_API,
});

function enviarUsuarioLogin() {
  const buildMode = process.env.NODE_ENV;
  if (buildMode === "production") {
    window.location.href = "https://portal.thalamus.ind.br/#/login";
  } else {
    window.location.href = "http://portal-homologacao.thalamus.ind.br/#/login";
  }
}

api.interceptors.request.use(
  (config) => {
    const usuarioLogado = sso.getUsuarioLogado();

    if (usuarioLogado != null) {
      config.headers.Authorization = `${usuarioLogado.tokenType} ${usuarioLogado.token}`;
    } else {
      return Promise.reject("Token inválido");
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

api.interceptors.response.use(
  (response) => response,
  (error) => {
    if (error.response && error.response.status === 401) {
      enviarUsuarioLogin();
    }
    return Promise.reject(error);
  }
);

export default api;
