101 lines
2.4 KiB
TypeScript
101 lines
2.4 KiB
TypeScript
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<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];
|
|
}
|
|
};
|