UIKit/lib/api/tickets.ts

101 lines
2.4 KiB
TypeScript
Raw Normal View History

2023-06-11 09:55:06 +00:00
import { makeRequest } from "./makeRequest";
import type {
SendTicketMessageRequest,
CreateTicketResponse,
SendFileResponse,
CreateTicketRequest
} from "../model/ticket";
2023-06-06 10:02:17 +00:00
const apiUrl = `${process.env.REACT_APP_DOMAIN}/heruvym/v1.0.0`;
export const sendTicketMessage = async ({
ticketId,
message,
systemError
}: {
ticketId: string,
message: string,
systemError: boolean
}): Promise<[null, unknown?]> => {
try {
const sendTicketMessageResponse = await makeRequest<
SendTicketMessageRequest,
null
>({
url: `${apiUrl}/send`,
method: "POST",
useToken: true,
body: { ticket: ticketId, message: message, lang: "ru", files: [], System: systemError },
});
return [sendTicketMessageResponse];
} catch (nativeError) {
return [null, nativeError];
}
};
export const shownMessage = async (id: string): Promise<[null, unknown?]> => {
try {
const shownMessageResponse = await makeRequest<{ id: string }, null>({
url: `${apiUrl}/shown`,
method: "POST",
useToken: true,
body: { id },
});
return [shownMessageResponse];
} catch (nativeError) {
return [null, nativeError];
}
};
export const sendFile = async ({
ticketId,
file,
}: {
ticketId: string,
file: File,
}): Promise<[SendFileResponse | null, unknown?]> => {
try {
const body = new FormData();
body.append(file.name, file);
body.append("ticket", ticketId);
const sendResponse = await makeRequest<FormData, SendFileResponse>({
method: "POST",
url: `${apiUrl}/sendFiles`,
body,
});
return [sendResponse];
} catch (nativeError) {
return [null, nativeError];
}
};
export const createTicket = async ({
message,
useToken,
systemError
}: {
message: string,
useToken: boolean,
systemError: boolean
}): Promise<[CreateTicketResponse | null, unknown?]> => {
try {
const createdTicket = await makeRequest<CreateTicketRequest, CreateTicketResponse>({
url: `${process.env.REACT_APP_DOMAIN}/heruvym/v1.0.0/create`,
body: { Title: "Unauth title", Message: message, System: systemError },
useToken,
});
return [createdTicket];
} catch (nativeError) {
return [null, nativeError];
}
};