import { BE_PLANNING_PLANNINGS_URL, BE_PLANNING_EVENTS_URL } from '@/utils/Url'; const requestResponseHandler = async (response) => { const body = response.status !== 204 ? await response?.json() : {}; console.log(response); if (response.ok) { return body; } // Throw an error with the JSON body containing the form errors const error = new Error(body?.errorMessage || 'Une erreur est survenue'); error.details = body; throw error; }; const getData = (url) => { return fetch(`${url}`).then(requestResponseHandler); }; const createDatas = (url, newData, csrfToken) => { return fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRFToken': csrfToken, }, body: JSON.stringify(newData), credentials: 'include', }).then(requestResponseHandler); }; const updateDatas = (url, updatedData, csrfToken) => { return fetch(`${url}`, { method: 'PUT', headers: { 'Content-Type': 'application/json', 'X-CSRFToken': csrfToken, }, body: JSON.stringify(updatedData), credentials: 'include', }).then(requestResponseHandler); }; const removeDatas = (url, csrfToken) => { return fetch(`${url}`, { method: 'DELETE', headers: { 'Content-Type': 'application/json', 'X-CSRFToken': csrfToken, }, credentials: 'include', }).then(requestResponseHandler); }; export const fetchPlannings = () => { return getData(`${BE_PLANNING_PLANNINGS_URL}`); }; export const getPlanning = (id) => { return getData(`${BE_PLANNING_PLANNINGS_URL}/${id}`); }; export const createPlanning = (newData, csrfToken) => { return createDatas(`${BE_PLANNING_PLANNINGS_URL}`, newData, csrfToken); }; export const updatePlanning = (id, newData, csrfToken) => { return updateDatas(`${BE_PLANNING_PLANNINGS_URL}/${id}`, newData, csrfToken); }; export const deletePlanning = (id, csrfToken) => { return removeDatas(`${BE_PLANNING_PLANNINGS_URL}/${id}`, csrfToken); }; export const fetchEvents = () => { return getData(`${BE_PLANNING_EVENTS_URL}`); }; export const getEvent = (id) => { return getData(`${BE_PLANNING_EVENTS_URL}/${id}`); }; export const createEvent = (newData, csrfToken) => { return createDatas(`${BE_PLANNING_EVENTS_URL}`, newData, csrfToken); }; export const updateEvent = (id, newData, csrfToken) => { return updateDatas(`${BE_PLANNING_EVENTS_URL}/${id}`, newData, csrfToken); }; export const deleteEvent = (id, csrfToken) => { return removeDatas(`${BE_PLANNING_EVENTS_URL}/${id}`, csrfToken); }; export const fetchUpcomingEvents = () => { return getData(`${BE_PLANNING_EVENTS_URL}/upcoming`); };