import { makeRequest } from "@frontend/kitui"; import { CreatePromocodeBody, GetPromocodeListBody, Promocode, PromocodeList } from "@root/model/promocodes"; import { parseAxiosError } from "@root/utils/parse-error"; const baseUrl = process.env.REACT_APP_DOMAIN + "/codeword/promocode"; const getPromocodeList = async ( body: GetPromocodeListBody ): Promise => { try { const promocodeListResponse = await makeRequest< GetPromocodeListBody, PromocodeList >({ url: baseUrl + "/getList", method: "POST", body, useToken: false, }); return promocodeListResponse.items; } catch (nativeError) { const [error] = parseAxiosError(nativeError); throw new Error(`Ошибка при получении списка промокодов. ${error}`); } }; const createPromocode = async ( body: CreatePromocodeBody ): Promise => { try { const createPromocodeResponse = await makeRequest< CreatePromocodeBody, Promocode >({ url: baseUrl + "/create", method: "POST", body, useToken: false, }); return createPromocodeResponse; } catch (nativeError) { const [error] = parseAxiosError(nativeError); throw new Error(`Ошибка создания промокода. ${error}`); } }; const deletePromocode = async (id: string): Promise => { try { await makeRequest({ url: `${baseUrl}/${id}`, method: "DELETE", useToken: false, }); } catch (nativeError) { const [error] = parseAxiosError(nativeError); throw new Error(`Ошибка удаления промокода. ${error}`); } }; export const promocodeApi = { getPromocodeList, createPromocode, deletePromocode, };