25 lines
1.0 KiB
TypeScript
25 lines
1.0 KiB
TypeScript
import type { Language } from "@/lib/i18n";
|
|
import type { LocationSearchResult, ReverseLocationResult } from "@/types/location";
|
|
|
|
export async function fetchLocations(
|
|
query: string,
|
|
language: Language,
|
|
signal?: AbortSignal,
|
|
): Promise<LocationSearchResult[]> {
|
|
const params = new URLSearchParams({ query, language });
|
|
const response = await fetch(`/api/locations/search?${params}`, { signal });
|
|
if (!response.ok) throw new Error("Location search is temporarily unavailable.");
|
|
return response.json() as Promise<LocationSearchResult[]>;
|
|
}
|
|
|
|
export async function fetchReverseLocation(
|
|
latitude: number,
|
|
longitude: number,
|
|
language: Language,
|
|
): Promise<ReverseLocationResult> {
|
|
const params = new URLSearchParams({ latitude: String(latitude), longitude: String(longitude), language });
|
|
const response = await fetch(`/api/locations/reverse?${params}`);
|
|
if (!response.ok) throw new Error("Reverse location search is temporarily unavailable.");
|
|
return response.json() as Promise<ReverseLocationResult>;
|
|
}
|