Newer
Older
taehui / taehui-fe / src / utilities / wwwAPI.ts
@Taehui Taehui on 18 Mar 686 bytes v1.0.0
import axios, { AxiosError, isAxiosError } from "axios";
import { toast } from "react-toastify";

export const wwwAPIPath = "/www";

export const wwwAPI = axios.create({
  baseURL: wwwAPIPath,
});

wwwAPI.interceptors.response.use(
  (value) => value,
  (e: AxiosError) => {
    switch (e.response?.status) {
      case 401:
        window.sessionStorage.removeItem("totem");
        window.location.reload();
        break;
      case 413:
        toast.error("Payload Too Large");
        break;
      case 502:
        toast.error("Bad Gateway");
        break;
    }

    throw e;
  },
);

export const isClientFault = (e: Error) =>
  isAxiosError(e) && e.response?.status === 403;