redThread / client /src /api /client.js
3v324v23's picture
Optimize for Hugging Face deployment
a0333cd
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}`);
}