From 7a311225bd137f25ff0cfeef65ec7e3e38c879a2 Mon Sep 17 00:00:00 2001 From: Nastya Date: Sat, 5 Jul 2025 02:36:35 +0300 Subject: [PATCH] =?UTF-8?q?v1.0.109=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D1=8B?= =?UTF-8?q?=20=D0=BA=20api=20ticket?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/api/tickets.ts | 106 ++++++++++++++++++++++++++++++++++++++------ lib/model/ticket.ts | 7 ++- package.json | 2 +- 3 files changed, 99 insertions(+), 16 deletions(-) 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",