From bb1d35367cd6aabed3f51d98a3ddad89ed404a43 Mon Sep 17 00:00:00 2001 From: ArtChaos189 Date: Tue, 18 Apr 2023 17:30:47 +0300 Subject: [PATCH] MakeRequest --- src/api/tickets.ts | 147 +++++++++++++++++++++++++-------------------- 1 file changed, 83 insertions(+), 64 deletions(-) diff --git a/src/api/tickets.ts b/src/api/tickets.ts index 43f3aa0..065062c 100644 --- a/src/api/tickets.ts +++ b/src/api/tickets.ts @@ -1,89 +1,108 @@ -import makeRequest from "@root/kitUI/makeRequest"; -import { GetMessagesRequest, GetMessagesResponse, GetTicketsRequest, GetTicketsResponse, SendTicketMessageRequest } from "@root/model/ticket"; +import { + GetMessagesRequest, + GetMessagesResponse, + GetTicketsRequest, + GetTicketsResponse, + SendTicketMessageRequest, +} from "@root/model/ticket"; +import { authStore } from "@root/stores/auth"; import ReconnectingEventSource from "reconnecting-eventsource"; - const supportApiUrl = "https://admin.pena.digital/heruvym"; +const { makeRequest } = authStore(); -export function subscribeToAllTickets({ onMessage, onError, accessToken }: { - accessToken: string; - onMessage: (e: MessageEvent) => void; - onError: (e: Event) => void; +export function subscribeToAllTickets({ + onMessage, + onError, + accessToken, +}: { + accessToken: string; + onMessage: (e: MessageEvent) => void; + onError: (e: Event) => void; }) { - const url = `${supportApiUrl}/subscribe?Authorization=${accessToken}`; + const url = `${supportApiUrl}/subscribe?Authorization=${accessToken}`; - const eventSource = createEventSource(onMessage, onError, url); + const eventSource = createEventSource(onMessage, onError, url); - return () => { - eventSource.close(); - }; + return () => { + eventSource.close(); + }; } -export function subscribeToTicketMessages({ onMessage, onError, accessToken, ticketId }: { - accessToken: string; - ticketId: string; - onMessage: (e: MessageEvent) => void; - onError: (e: Event) => void; +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 url = `${supportApiUrl}/ticket?ticket=${ticketId}&Authorization=${accessToken}`; - const eventSource = createEventSource(onMessage, onError, url); + const eventSource = createEventSource(onMessage, onError, url); - return () => { - eventSource.close(); - }; + return () => { + eventSource.close(); + }; } -export async function getTickets({ body, signal }: { - body: GetTicketsRequest; - signal: AbortSignal; +export async function getTickets({ + body, + signal, +}: { + body: GetTicketsRequest; + signal: AbortSignal; }): Promise { - return makeRequest({ - url: `${supportApiUrl}/getTickets`, - method: "POST", - useToken: true, - body, - signal, - }).then(response => { - const result = (response as any).data as GetTicketsResponse; - return result; - }); + return makeRequest({ + url: `${supportApiUrl}/getTickets`, + method: "POST", + useToken: true, + body, + signal, + }).then((response) => { + const result = (response as any).data as GetTicketsResponse; + return result; + }); } -export async function getTicketMessages({ body, signal }: { - body: GetMessagesRequest; - signal: AbortSignal; +export async function getTicketMessages({ + body, + signal, +}: { + body: GetMessagesRequest; + signal: AbortSignal; }): Promise { - return makeRequest({ - url: `${supportApiUrl}/getMessages`, - method: "POST", - useToken: true, - body, - signal, - }).then(response => { - const result = (response as any).data as GetMessagesResponse; - return result; - }); + return makeRequest({ + url: `${supportApiUrl}/getMessages`, + method: "POST", + useToken: true, + body, + signal, + }).then((response) => { + const result = (response as any).data as GetMessagesResponse; + return result; + }); } -export async function sendTicketMessage({ body }: { - body: SendTicketMessageRequest; -}) { - return makeRequest({ - url: `${supportApiUrl}/send`, - method: "POST", - useToken: true, - body, - }); +export async function sendTicketMessage({ body }: { body: SendTicketMessageRequest }) { + return makeRequest({ + url: `${supportApiUrl}/send`, + method: "POST", + useToken: true, + body, + }); } function createEventSource(onMessage: (e: MessageEvent) => void, onError: (e: Event) => void, url: string) { - const eventSource = new ReconnectingEventSource(url); + 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); + 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; -} \ No newline at end of file + return eventSource; +}