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"; 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?]> => { const payCart = async (): Promise<[UserAccount | null, string?]> => {
try { try {

@ -155,7 +155,7 @@ export const addQuizImages = async (
} catch (nativeError) { } catch (nativeError) {
const [error] = parseAxiosError(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); const [resAnswer, answerError] = await resultApi.getAnswerList(idResult);
if (answerError || !resAnswer) { if (answerError || !resAnswer) {
openPrePaymentModal(); if (answerError?.includes("Payment Required")) {
openPrePaymentModal();
}
return; return;
} }

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

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

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