Co-authored-by: pdf114514 <57948770+pdf114514@users.noreply.github.com> Agent-Logs-Url: https://github.com/pdf114514/CarReservation/sessions/cd194ca1-b339-4f2f-b717-31a0ba193964
28 lines
1.1 KiB
JavaScript
28 lines
1.1 KiB
JavaScript
const API_BASE = (import.meta.env.VITE_API_BASE_URL ?? '') + '/api';
|
|
|
|
async function request(path, options = {}) {
|
|
const res = await fetch(`${API_BASE}${path}`, {
|
|
headers: { 'Content-Type': 'application/json' },
|
|
...options,
|
|
});
|
|
if (!res.ok) {
|
|
const err = await res.json().catch(() => ({ error: 'Unknown error' }));
|
|
throw new Error(err.error || `HTTP ${res.status}`);
|
|
}
|
|
return res.json();
|
|
}
|
|
|
|
export const api = {
|
|
// Cars
|
|
getCars: () => request('/cars'),
|
|
createCar: (data) => request('/cars', { method: 'POST', body: JSON.stringify(data) }),
|
|
updateCar: (id, data) => request(`/cars/${id}`, { method: 'PUT', body: JSON.stringify(data) }),
|
|
deleteCar: (id) => request(`/cars/${id}`, { method: 'DELETE' }),
|
|
|
|
// Reservations
|
|
getReservations: () => request('/reservations'),
|
|
createReservation: (data) => request('/reservations', { method: 'POST', body: JSON.stringify(data) }),
|
|
updateReservation: (id, data) => request(`/reservations/${id}`, { method: 'PUT', body: JSON.stringify(data) }),
|
|
deleteReservation: (id) => request(`/reservations/${id}`, { method: 'DELETE' }),
|
|
};
|