31 lines
1009 B
TypeScript
31 lines
1009 B
TypeScript
import { API_ENDPOINTS } from "@/api/config";
|
|
import { requestJson } from "@/api/http";
|
|
import type { Entity } from "@/types/entities";
|
|
|
|
export type { Entity } from "@/types/entities";
|
|
|
|
export async function fetchEntities(query?: { q?: string }): Promise<Entity[]> {
|
|
const params = new URLSearchParams();
|
|
if (query?.q) {
|
|
params.set("q", query.q);
|
|
}
|
|
const suffix = params.toString();
|
|
const url = suffix ? `${API_ENDPOINTS.entities}?${suffix}` : API_ENDPOINTS.entities;
|
|
return requestJson<Entity[]>(url);
|
|
}
|
|
|
|
export async function searchEntitiesByName(
|
|
name: string,
|
|
options?: { limit?: number }
|
|
): Promise<Entity[]> {
|
|
const keyword = name.trim();
|
|
if (!keyword.length) return [];
|
|
|
|
const params = new URLSearchParams({ name: keyword });
|
|
if (options?.limit && Number.isFinite(options.limit)) {
|
|
params.set("limit", String(Math.trunc(options.limit)));
|
|
}
|
|
|
|
return requestJson<Entity[]>(`${API_ENDPOINTS.entities}/search?${params.toString()}`);
|
|
}
|