мейк реквест в обёртке

This commit is contained in:
Nastya 2024-04-16 22:46:07 +03:00
parent dae4e83014
commit dc5e923ba6
18 changed files with 54 additions and 22 deletions

@ -1,4 +1,4 @@
import { makeRequest } from "@frontend/kitui"; import makeRequest from "@api/makeRequest";
import { parseAxiosError } from "@root/utils/parse-error"; import { parseAxiosError } from "@root/utils/parse-error";

@ -1,5 +1,5 @@
import { UserAccount, makeRequest } from "@frontend/kitui" import { UserAccount } from "@frontend/kitui"
import { AxiosError } from "axios" import makeRequest from "@api/makeRequest"
import { parseAxiosError } from "@root/utils/parse-error" import { parseAxiosError } from "@root/utils/parse-error"

@ -1,5 +1,6 @@
import { Tariff, makeRequest } from "@frontend/kitui" import { Tariff } from "@frontend/kitui"
import { parseAxiosError } from "@root/utils/parse-error" import { parseAxiosError } from "@root/utils/parse-error"
import makeRequest from "@api/makeRequest"
export interface GetHistoryResponse { export interface GetHistoryResponse {
totalPages: number; totalPages: number;

32
src/api/makeRequest.ts Normal file

@ -0,0 +1,32 @@
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; }
async function makeRequest<TRequest = unknown, TResponse = unknown>(data: MakeRequest): Promise<TResponse> {
try {
const response = await KIT.makeRequest<unknown>(data)
return response as TResponse
} catch (e) {
const error = e as AxiosError;
//@ts-ignore
if (error.response?.status === 400 && error.response?.data?.message === "refreshToken is empty") {
clearAuthToken();
clearUserData();
clearCustomTariffs();
clearTickets();
setNotEnoughMoneyAmount(0)
redirect("/");
}
throw e
};
};
export default makeRequest;

@ -1,4 +1,4 @@
import { makeRequest } from "@frontend/kitui"; import makeRequest from "@api/makeRequest"
import type { GetDiscountsResponse } from "@root/model/discount"; import type { GetDiscountsResponse } from "@root/model/discount";
import { useUserStore } from "@root/stores/user"; import { useUserStore } from "@root/stores/user";
import { parseAxiosError } from "@root/utils/parse-error"; import { parseAxiosError } from "@root/utils/parse-error";

@ -1,4 +1,4 @@
import { makeRequest } from "@frontend/kitui"; import makeRequest from "@api/makeRequest"
import { parseAxiosError } from "@utils/parse-error"; import { parseAxiosError } from "@utils/parse-error";

@ -1,4 +1,4 @@
import { makeRequest } from "@frontend/kitui" import makeRequest from "@api/makeRequest"
import { parseAxiosError } from "@root/utils/parse-error" import { parseAxiosError } from "@root/utils/parse-error"
export async function getRecentlyPurchasedTariffs(): Promise<[any | null, string?]> { export async function getRecentlyPurchasedTariffs(): Promise<[any | null, string?]> {

@ -1,4 +1,5 @@
import { Tariff, makeRequest } from "@frontend/kitui"; import makeRequest from "@api/makeRequest"
import { Tariff } from "@frontend/kitui";
import { parseAxiosError } from "@root/utils/parse-error"; import { parseAxiosError } from "@root/utils/parse-error";
import type { PrivilegeWithoutPrice, ServiceKeyToPrivilegesMap } from "@root/model/privilege"; import type { PrivilegeWithoutPrice, ServiceKeyToPrivilegesMap } from "@root/model/privilege";

@ -1,4 +1,4 @@
import { makeRequest } from "@frontend/kitui"; import makeRequest from "@api/makeRequest"
import { parseAxiosError } from "@root/utils/parse-error"; import { parseAxiosError } from "@root/utils/parse-error";
import { SendTicketMessageRequest } from "@frontend/kitui"; import { SendTicketMessageRequest } from "@frontend/kitui";

@ -1,4 +1,5 @@
import { User, makeRequest } from "@frontend/kitui" import { User } from "@frontend/kitui"
import makeRequest from "@api/makeRequest"
import { PatchUserRequest } from "@root/model/user" import { PatchUserRequest } from "@root/model/user"
import { parseAxiosError } from "@root/utils/parse-error" import { parseAxiosError } from "@root/utils/parse-error"

@ -1,4 +1,4 @@
import { makeRequest } from "@frontend/kitui" import makeRequest from "@api/makeRequest"
import { jsonToFormdata } from "@root/utils/jsonToFormdata" import { jsonToFormdata } from "@root/utils/jsonToFormdata"
import { parseAxiosError } from "@root/utils/parse-error" import { parseAxiosError } from "@root/utils/parse-error"

@ -1,4 +1,4 @@
import { makeRequest } from "@frontend/kitui"; import makeRequest from "@api/makeRequest"
import { SendPaymentRequest, SendPaymentResponse } from "@root/model/wallet"; import { SendPaymentRequest, SendPaymentResponse } from "@root/model/wallet";
import { parseAxiosError } from "@root/utils/parse-error"; import { parseAxiosError } from "@root/utils/parse-error";

@ -10,9 +10,9 @@ import {
useMediaQuery, useMediaQuery,
useTheme, useTheme,
} from "@mui/material"; } from "@mui/material";
import makeRequest from "@api/makeRequest"
import { import {
TicketMessage, TicketMessage,
makeRequest,
useTicketsFetcher, useTicketsFetcher,
useTicketMessages, useTicketMessages,
getMessageFromFetchError, getMessageFromFetchError,

@ -4,8 +4,6 @@ import File from "@components/icons/File"
import { getDeclension } from "@utils/declension" import { getDeclension } from "@utils/declension"
import { enqueueSnackbar } from "notistack" import { enqueueSnackbar } from "notistack"
import { addTariffToCart } from "@root/stores/user" import { addTariffToCart } from "@root/stores/user"
import {getMessageFromFetchError, makeRequest} from "@frontend/kitui"
import EmailIcon from "@mui/icons-material/Email"
export type History = { export type History = {
title: string; title: string;

@ -14,7 +14,8 @@ import ArrowDownwardIcon from "@mui/icons-material/ArrowDownward";
import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { useCallback, useEffect, useMemo, useRef, useState } from "react";
import { useParams } from "react-router-dom"; import { useParams } from "react-router-dom";
import SendIcon from "@components/icons/SendIcon"; import SendIcon from "@components/icons/SendIcon";
import { makeRequest, throttle, useToken } from "@frontend/kitui"; import makeRequest from "@api/makeRequest"
import { throttle, useToken } from "@frontend/kitui";
import { enqueueSnackbar } from "notistack"; import { enqueueSnackbar } from "notistack";
import { useTicketStore } from "@root/stores/tickets"; import { useTicketStore } from "@root/stores/tickets";
import { import {

@ -14,15 +14,13 @@ import { useFormik } from "formik";
import InputTextfield from "@components/InputTextfield"; import InputTextfield from "@components/InputTextfield";
import PenaLogo from "@components/PenaLogo"; import PenaLogo from "@components/PenaLogo";
import { enqueueSnackbar } from "notistack"; import { enqueueSnackbar } from "notistack";
import { Link as RouterLink } from "react-router-dom";
import { object, string } from "yup"; import { object, string } from "yup";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { useUserStore } from "@root/stores/user"; import { useUserStore } from "@root/stores/user";
import { cardShadow } from "@root/utils/theme"; import { cardShadow } from "@root/utils/theme";
import { recover } from "@root/api/auth"; import makeRequest from "@api/makeRequest"
import axios, {AxiosResponse} from "axios" import { setAuthToken } from "@frontend/kitui"
import {getAuthToken, makeRequest, setAuthToken} from "@frontend/kitui"
interface Values { interface Values {
password: string; password: string;
} }

@ -1,4 +1,3 @@
import { makeRequest } from "@frontend/kitui"
import { ErrorInfo } from "react" import { ErrorInfo } from "react"

@ -5,7 +5,8 @@
"@root/*": ["./*"], "@root/*": ["./*"],
"@utils/*": ["./utils/*"], "@utils/*": ["./utils/*"],
"@components/*": ["./components/*"], "@components/*": ["./components/*"],
"@stores/*": ["./stores/*"] "@stores/*": ["./stores/*"],
"@api/*": ["./api/*"]
} }
} }
} }