add api functions
This commit is contained in:
parent
f437147353
commit
f41ada299b
@ -1,14 +1,16 @@
|
||||
import makeRequest from "@root/kitUI/makeRequest";
|
||||
import { GetMessagesRequest, GetMessagesResponse, GetTicketsRequest, GetTicketsResponse, SendTicketMessageRequest } from "@root/model/ticket";
|
||||
import ReconnectingEventSource from "reconnecting-eventsource";
|
||||
|
||||
|
||||
const supportApiUrl = "https://admin.pena.digital/heruvym";
|
||||
|
||||
export function subscribeToAllTickets({ onMessage, onError, accessToken }: {
|
||||
accessToken: string;
|
||||
onMessage: (e: MessageEvent) => void;
|
||||
onError: (e: Event) => void;
|
||||
}) {
|
||||
if (!accessToken) throw new Error("Trying to subscribe to SSE without access token");
|
||||
|
||||
const url = `https://admin.pena.digital/heruvym/subscribe?Authorization=${accessToken}`;
|
||||
const url = `${supportApiUrl}/subscribe?Authorization=${accessToken}`;
|
||||
const eventSource = new ReconnectingEventSource(url);
|
||||
|
||||
eventSource.addEventListener("open", () => console.log(`EventSource connected with ${url}`));
|
||||
@ -19,4 +21,68 @@ export function subscribeToAllTickets({ onMessage, onError, accessToken }: {
|
||||
return () => {
|
||||
eventSource.close();
|
||||
};
|
||||
}
|
||||
|
||||
export function subscribeToTicketMessages({ onMessage, onError, accessToken, ticketId }: {
|
||||
accessToken: string;
|
||||
ticketId: string;
|
||||
onMessage: (e: MessageEvent) => void;
|
||||
onError: (e: Event) => void;
|
||||
}) {
|
||||
const url = `${supportApiUrl}/ticket?ticket=${ticketId}&Authorization=${accessToken}`;
|
||||
const eventSource = new ReconnectingEventSource(url);
|
||||
|
||||
eventSource.addEventListener("open", () => console.log(`EventSource connected with ${url}`));
|
||||
eventSource.addEventListener("close", () => console.log(`EventSource closed with ${url}`));
|
||||
eventSource.addEventListener("message", onMessage);
|
||||
eventSource.addEventListener("error", onError);
|
||||
|
||||
return () => {
|
||||
eventSource.close();
|
||||
};
|
||||
}
|
||||
|
||||
export async function getTickets({ body, signal }: {
|
||||
body: GetTicketsRequest;
|
||||
signal: AbortSignal;
|
||||
}): Promise<GetTicketsResponse> {
|
||||
return makeRequest({
|
||||
url: `${supportApiUrl}/getTickets`,
|
||||
method: "POST",
|
||||
useToken: true,
|
||||
body,
|
||||
signal,
|
||||
}).then(response => {
|
||||
const result = (response as any).data as GetTicketsResponse;
|
||||
console.log("GetTicketsResponse", result);
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
export async function getTicketMessages({ body, signal }: {
|
||||
body: GetMessagesRequest;
|
||||
signal: AbortSignal;
|
||||
}): Promise<GetMessagesResponse> {
|
||||
return makeRequest({
|
||||
url: `${supportApiUrl}/getMessages`,
|
||||
method: "POST",
|
||||
useToken: true,
|
||||
body,
|
||||
signal,
|
||||
}).then(response => {
|
||||
const result = (response as any).data as GetMessagesResponse;
|
||||
console.log("GetMessagesResponse", result);
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
export async function sendTicketMessage({ body }: {
|
||||
body: SendTicketMessageRequest;
|
||||
}) {
|
||||
return makeRequest({
|
||||
url: `${supportApiUrl}/send`,
|
||||
method: "POST",
|
||||
useToken: true,
|
||||
body,
|
||||
});
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user