diff --git a/src/api/cart.ts b/src/api/cart.ts index 257a5035..f6c1780f 100644 --- a/src/api/cart.ts +++ b/src/api/cart.ts @@ -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 { diff --git a/src/api/quiz.ts b/src/api/quiz.ts index c403f173..b87693d3 100644 --- a/src/api/quiz.ts +++ b/src/api/quiz.ts @@ -155,7 +155,7 @@ export const addQuizImages = async ( } catch (nativeError) { const [error] = parseAxiosError(nativeError); - return [null, `Не удалось добавить картинку. ${error}`]; + return [null, `Не удалось добавить изображение. ${error}`]; } }; diff --git a/src/pages/QuizAnswersPage/CardAnswer.tsx b/src/pages/QuizAnswersPage/CardAnswer.tsx index 00df02d0..685d42b8 100644 --- a/src/pages/QuizAnswersPage/CardAnswer.tsx +++ b/src/pages/QuizAnswersPage/CardAnswer.tsx @@ -62,7 +62,9 @@ export const CardAnswer: FC = ({ const [resAnswer, answerError] = await resultApi.getAnswerList(idResult); if (answerError || !resAnswer) { - openPrePaymentModal(); + if (answerError?.includes("Payment Required")) { + openPrePaymentModal(); + } return; } diff --git a/src/pages/Tariffs/Tariffs.tsx b/src/pages/Tariffs/Tariffs.tsx index 44dc051c..08d30060 100644 --- a/src/pages/Tariffs/Tariffs.tsx +++ b/src/pages/Tariffs/Tariffs.tsx @@ -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("Произошла ошибка. Попробуйте позже"); diff --git a/src/stores/results/actions.ts b/src/stores/results/actions.ts index f2348c7d..ca612c50 100644 --- a/src/stores/results/actions.ts +++ b/src/stores/results/actions.ts @@ -104,8 +104,9 @@ export const ExportResults = async ( ); if (resultError) { - openPrePaymentModal(); - + if (resultError?.includes("Payment Required")) { + openPrePaymentModal(); + } return; } diff --git a/src/utils/parse-error.ts b/src/utils/parse-error.ts index 00c546a9..bb909ca3 100644 --- a/src/utils/parse-error.ts +++ b/src/utils/parse-error.ts @@ -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;