import type { BaseRetData, PerformanceGetListData, PerformanceGetListResponse, } from "./models" import {sleep} from "~/utils/utils.ts"; // export const apiEndpoint = import.meta.env.VITE_API_ENDPOINT export async function fetchAPI(path: string, method: string, body?: any, headers?: any, contentType: string | null = "application/json"): Promise { const baseHeaders: { [key: string]: any } = { "password": `${localStorage.getItem("password")}`, } if (contentType) { baseHeaders["Content-Type"] = contentType } let reqHeaders: any if (headers) { reqHeaders = {...baseHeaders, ...headers} } else { reqHeaders = baseHeaders } return new Promise((resolve, reject) => { fetch(`${localStorage.getItem("testServerAddress")}/${path}`, { method, credentials: "include", headers: reqHeaders, body: contentType === "application/json" ? (body ? JSON.stringify(body) : undefined) : body, }) .then((v) => resolve(v)) .catch((e) => reject(e)) }) } export async function apiPing(): Promise { const resp = await fetchAPI("ping", "GET") return resp.json() } export async function apiPingWithPassword(serverAddress: string, password: string): Promise { localStorage.setItem("testServerAddress", serverAddress) localStorage.setItem("password", password) return apiPing() } export async function apiPerformanceGetList(count: number, example_data_limit: number, idx: number): Promise { const resp = await fetchAPI(`performance_test_get_list?count=${count}&example_data_limit=${example_data_limit}&idx=${idx}`, "GET") return resp.json() } export async function apiPerformanceUploadData(count: number, idx: number): Promise { const resp = await fetchAPI(`performance_test_add_books?count=${count}&idx=${idx}`, "GET") return resp.json() }