import { makeRequest } from "./makeRequest"; import type { SendTicketMessageRequest, CreateTicketResponse, SendFileResponse, CreateTicketRequest } from "../model/ticket"; 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({ 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({ 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]; } };