fix: custom errors

This commit is contained in:
IlyaDoronin 2024-05-15 16:51:41 +03:00
parent 01f1e50c4a
commit 4e4565813a
6 changed files with 20 additions and 11 deletions

@ -3,7 +3,7 @@ import { makeRequest } from "@api/makeRequest";
import { parseAxiosError } from "@utils/parse-error";
const API_URL = `${process.env.REACT_APP_DOMAIN}/customer/cart/`;
const API_URL = `${process.env.REACT_APP_DOMAIN}/customer/cart`;
const payCart = async (): Promise<[UserAccount | null, string?]> => {
try {

@ -155,7 +155,7 @@ export const addQuizImages = async (
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
return [null, `Не удалось добавить картинку. ${error}`];
return [null, `Не удалось добавить изображение. ${error}`];
}
};

@ -62,7 +62,9 @@ export const CardAnswer: FC<CardAnswerProps> = ({
const [resAnswer, answerError] = await resultApi.getAnswerList(idResult);
if (answerError || !resAnswer) {
if (answerError?.includes("Payment Required")) {
openPrePaymentModal();
}
return;
}

@ -137,14 +137,15 @@ function TariffPage() {
if (payError || !data) {
//если денег не хватило
if (addError) {
let cashDif = Number(addError.split(":")[1]);
if (payError?.includes("insufficient funds")) {
let cashDif = Number(payError.split(":")[1]);
var link = document.createElement("a");
link.href = `https://${isTestServer ? "s" : ""}hub.pena.digital/quizpayment?action=squizpay&dif=${cashDif}&data=${token}&userid=${userId}`;
document.body.appendChild(link);
link.click();
return;
}
//другая ошибка
enqueueSnackbar("Произошла ошибка. Попробуйте позже");

@ -104,8 +104,9 @@ export const ExportResults = async (
);
if (resultError) {
if (resultError?.includes("Payment Required")) {
openPrePaymentModal();
}
return;
}

@ -32,14 +32,19 @@ export const parseAxiosError = (nativeError: unknown): [string, number?] => {
if (error.response?.data) {
const serverError = error.response.data as ServerError;
let SEMessage;
if ("statusCode" in (error.response?.data as ServerError)) {
if (error.response.statusText) {
return [error.response.statusText];
}
if ("statusCode" in serverError) {
SEMessage = serverError?.message.toLowerCase() || "";
}
if (
"error" in (error.response?.data as ServerError) &&
!("statusCode" in (error.response?.data as ServerError))
"error" in serverError &&
!("statusCode" in (error.response.data as ServerError))
) {
SEMessage = serverError?.error.toLowerCase() || "";
SEMessage = serverError.error.toLowerCase() || "";
}
const translatedMessage = translateMessage[SEMessage || ""]?.toLowerCase();
if (translatedMessage !== undefined) SEMessage = translatedMessage;