diff --git a/frontend/src/app/buy/[slug]/page.tsx b/frontend/src/app/buy/[slug]/page.tsx index fb9e03e..43426b1 100644 --- a/frontend/src/app/buy/[slug]/page.tsx +++ b/frontend/src/app/buy/[slug]/page.tsx @@ -73,7 +73,7 @@ export default function BuyDomainPage() { setLoading(true) setError(null) try { - const data = await api.request(`/listings/${slug}`) + const data = await api.getListing(slug) setListing(data) } catch (err: any) { setError(err.message || 'Listing not found') diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index 1e44b50..e16196c 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -432,6 +432,36 @@ class ApiClient { }>(`/tld-prices/overview?${params.toString()}`) } + // Listings (Marketplace) + async getListings(params?: { + search?: string + tld?: string + min_price?: number + max_price?: number + sort_by?: string + limit?: number + offset?: number + }) { + const query = new URLSearchParams() + if (params) { + Object.entries(params).forEach(([key, value]) => { + if (value !== undefined && value !== null) { + query.append(key, String(value)) + } + }) + } + return this.request<{ + listings: any[] + total: number + limit: number + offset: number + }>(`/listings?${query.toString()}`) + } + + async getListing(slug: string) { + return this.request(`/listings/${slug}`) + } + async getTldHistory(tld: string, days = 90) { return this.request<{ tld: string