import * as KIT from "@frontend/kitui"; import { Method, ResponseType, AxiosError } from "axios"; import { clearAuthToken } from "@frontend/kitui"; import { clearUserData } from "@root/stores/user"; import { clearCustomTariffs } from "@root/stores/customTariffs"; import { clearTickets } from "@root/stores/tickets"; import { redirect } from "react-router-dom"; import {setNotEnoughMoneyAmount} from "@stores/cart" interface MakeRequest { method?: Method | undefined; url: string; body?: unknown; useToken?: boolean | undefined; contentType?: boolean | undefined; responseType?: ResponseType | undefined; signal?: AbortSignal | undefined; withCredentials?: boolean | undefined; } interface ErrorResponseData { message?: string; } async function makeRequest(data: MakeRequest): Promise { try { const response = await KIT.makeRequest(data) return response as TResponse } catch (e) { const error = e as AxiosError; if (error.response?.status === 400 && (error.response?.data as ErrorResponseData)?.message === "refreshToken is empty") { clearAuthToken(); clearUserData(); clearCustomTariffs(); clearTickets(); setNotEnoughMoneyAmount(0) redirect("/"); } throw e }; }; export default makeRequest;