Spaces:
Running
Running
| const BASE_URL = typeof window !== 'undefined' && window.location.hostname === 'localhost' | |
| ? 'http://localhost:3001/api' | |
| : '/api'; | |
| async function request(endpoint, options = {}) { | |
| const url = `${BASE_URL}${endpoint}`; | |
| const config = { | |
| headers: { 'Content-Type': 'application/json' }, | |
| ...options, | |
| }; | |
| const response = await fetch(url, config); | |
| const data = await response.json(); | |
| if (!response.ok) { | |
| const error = new Error(data.error || 'Request failed'); | |
| error.status = response.status; | |
| error.data = data; | |
| throw error; | |
| } | |
| return data; | |
| } | |
| export function getHealth() { | |
| return request('/health'); | |
| } | |
| export function search(query, location, filters, userLocation, clarificationContext) { | |
| return request('/search', { | |
| method: 'POST', | |
| body: JSON.stringify({ query, location, filters, userLocation, clarificationContext }), | |
| }); | |
| } | |
| export function getCategories() { | |
| return request('/categories'); | |
| } | |
| export function getSuggestions(q) { | |
| return request(`/suggestions?q=${encodeURIComponent(q)}`); | |
| } | |
| export function getPlaceById(id) { | |
| return request(`/suggestions/${id}`); | |
| } | |