refactor: tickets and user API

This commit is contained in:
IlyaDoronin 2023-08-31 17:30:48 +03:00
parent 68a2142b66
commit 258c7caaa8
6 changed files with 53 additions and 24 deletions

@ -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"

@ -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"

@ -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}`];
}
};

@ -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<never, UserType>({
url: `${baseUrl}/${id}`,
method: "GET",
useToken: true,
});
export const getUserInfo = async (
id: string
): Promise<[UserType | null, string?]> => {
try {
const userInfoResponse = await makeRequest<never, UserType>({
url: `${baseUrl}/${id}`,
method: "GET",
useToken: true,
});
return [userInfoResponse];
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
return [null, `Ошибка получения информации о пользователе. ${error}`];
}
};

@ -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("");
}

@ -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));
}
}, []);