diff --git a/lib/api/tickets.ts b/lib/api/tickets.ts index cda5a33..c5b13c7 100644 --- a/lib/api/tickets.ts +++ b/lib/api/tickets.ts @@ -1,17 +1,95 @@ -import { CreateTicketRequest, CreateTicketResponse } from "../model/ticket"; import { makeRequest } from "./makeRequest"; +import type { + SendTicketMessageRequest, + CreateTicketResponse, + SendFileResponse, + CreateTicketRequest +} from "../model/ticket"; -export function createTicket({ url, body, useToken = true }: { - url: string; - body: CreateTicketRequest; - useToken?: boolean; -}): Promise { - return makeRequest({ - url, - method: "POST", - useToken, - body, - withCredentials: true, - }); -} \ No newline at end of file +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: 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: 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]; + } +}; diff --git a/lib/model/ticket.ts b/lib/model/ticket.ts index ed5079a..63dc4c3 100644 --- a/lib/model/ticket.ts +++ b/lib/model/ticket.ts @@ -3,7 +3,7 @@ export interface CreateTicketRequest { Title: string; Message: string; - System?: boolean; + System: boolean } export interface CreateTicketResponse { @@ -16,6 +16,7 @@ export interface SendTicketMessageRequest { ticket: string; lang: string; files: string[]; + System?: boolean; } export type TicketStatus = "open"; @@ -67,3 +68,7 @@ export interface GetMessagesRequest { } export type GetMessagesResponse = TicketMessage[]; + +export type SendFileResponse = { + message: string; +}; \ No newline at end of file diff --git a/package.json b/package.json index 7806254..2f3c504 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@frontend/kitui", - "version": "1.0.108", + "version": "1.0.109", "description": "test", "main": "./dist/index.js", "module": "./dist/index.js",