diff --git a/src/api/discounts.ts b/src/api/discounts.ts index d317aba..1cdb323 100644 --- a/src/api/discounts.ts +++ b/src/api/discounts.ts @@ -1,9 +1,9 @@ import { makeRequest } from "@frontend/kitui"; -import { CreateDiscountBody, DiscountType } from "@root/model/discount"; import { parseAxiosError } from "@root/utils/parse-error"; import type { Discount } from "@frontend/kitui"; +import type { CreateDiscountBody, DiscountType } from "@root/model/discount"; const baseUrl = process.env.NODE_ENV === "production" diff --git a/src/api/tariffs.ts b/src/api/tariffs.ts index 5d70f2b..4e0e56c 100644 --- a/src/api/tariffs.ts +++ b/src/api/tariffs.ts @@ -1,9 +1,9 @@ import { makeRequest } from "@frontend/kitui"; -import { EditTariffRequestBody } from "@root/model/tariff"; import { parseAxiosError } from "@root/utils/parse-error"; import type { Tariff } from "@frontend/kitui"; +import type { EditTariffRequestBody } from "@root/model/tariff"; const baseUrl = process.env.NODE_ENV === "production" diff --git a/src/api/tickets.ts b/src/api/tickets.ts index e70a0be..769ae89 100644 --- a/src/api/tickets.ts +++ b/src/api/tickets.ts @@ -1,14 +1,32 @@ import { makeRequest } from "@frontend/kitui"; -import { SendTicketMessageRequest } from "@root/model/ticket"; +import { parseAxiosError } from "@root/utils/parse-error"; -const supportApiUrl = "https://admin.pena.digital/heruvym"; +import type { SendTicketMessageRequest } from "@root/model/ticket"; -export async function sendTicketMessage({ body }: { body: SendTicketMessageRequest; }) { - return makeRequest({ - url: `${supportApiUrl}/send`, - method: "POST", - useToken: true, - body, +const baseUrl = + process.env.NODE_ENV === "production" + ? "/heruvym" + : "https://admin.pena.digital/heruvym"; + +export const sendTicketMessage = async ( + body: SendTicketMessageRequest +): Promise<[unknown, string?]> => { + try { + const sendTicketMessageResponse = await makeRequest< + SendTicketMessageRequest, + unknown + >({ + url: `${baseUrl}/send`, + method: "POST", + useToken: true, + body, }); -} + + return [sendTicketMessageResponse]; + } catch (nativeError) { + const [error] = parseAxiosError(nativeError); + + return [null, `Ошибка отправки сообщения. ${error}`]; + } +}; diff --git a/src/api/user.ts b/src/api/user.ts index 2181524..cbdcb1d 100644 --- a/src/api/user.ts +++ b/src/api/user.ts @@ -1,5 +1,7 @@ import { makeRequest } from "@frontend/kitui"; +import { parseAxiosError } from "@root/utils/parse-error"; + import type { UserType } from "@root/api/roles"; const baseUrl = @@ -7,9 +9,20 @@ const baseUrl = ? "/user" : "https://admin.pena.digital/user"; -export const getUserInfo = async (id: string) => - makeRequest({ - url: `${baseUrl}/${id}`, - method: "GET", - useToken: true, - }); +export const getUserInfo = async ( + id: string +): Promise<[UserType | null, string?]> => { + try { + const userInfoResponse = await makeRequest({ + url: `${baseUrl}/${id}`, + method: "GET", + useToken: true, + }); + + return [userInfoResponse]; + } catch (nativeError) { + const [error] = parseAxiosError(nativeError); + + return [null, `Ошибка получения информации о пользователе. ${error}`]; + } +}; diff --git a/src/pages/dashboard/Content/Support/Chat/Chat.tsx b/src/pages/dashboard/Content/Support/Chat/Chat.tsx index 2347a48..1c185fb 100644 --- a/src/pages/dashboard/Content/Support/Chat/Chat.tsx +++ b/src/pages/dashboard/Content/Support/Chat/Chat.tsx @@ -100,12 +100,10 @@ export default function Chat() { if (!ticket || !messageField) return; sendTicketMessage({ - body: { - files: [], - lang: "ru", - message: messageField, - ticket: ticket.id, - } + files: [], + lang: "ru", + message: messageField, + ticket: ticket.id, }); setMessageField(""); } diff --git a/src/pages/dashboard/ModalUser/UserTab.tsx b/src/pages/dashboard/ModalUser/UserTab.tsx index 6830060..0dace28 100644 --- a/src/pages/dashboard/ModalUser/UserTab.tsx +++ b/src/pages/dashboard/ModalUser/UserTab.tsx @@ -19,7 +19,7 @@ export const UserTab = ({ userId }: UserTabProps) => { useEffect(() => { if (userId) { - getUserInfo(userId).then(setUser); + getUserInfo(userId).then(([userInfo]) => setUser(userInfo)); getAccountInfo(userId).then(([accountsInfo]) => setAccount(accountsInfo)); } }, []);