import { BE_AUTH_LOGIN_URL, BE_AUTH_REGISTER_URL, BE_AUTH_PROFILE_URL, BE_AUTH_RESET_PASSWORD_URL, BE_AUTH_NEW_PASSWORD_URL, FE_USERS_LOGIN_URL , } from '@/utils/Url'; import {mockUser} from "@/data/mockUsersData"; const useFakeData = process.env.NEXT_PUBLIC_USE_FAKE_DATA === 'true'; export const login = (data, csrfToken) => { const request = new Request( `${BE_AUTH_LOGIN_URL}`, { method:'POST', headers: { 'Content-Type':'application/json', 'X-CSRFToken': csrfToken }, body: JSON.stringify(data), credentials: 'include', } ); return fetch(request).then(response => response.json()) } /** * Disconnects the user after confirming the action. * If `NEXT_PUBLIC_USE_FAKE_DATA` environment variable is set to 'true', it will log a fake disconnect and redirect to the login URL. * Otherwise, it will send a PUT request to the backend to update the user profile and then redirect to the login URL. * * @function * @name disconnect * @returns {void} */ export const disconnect = () => { if (confirm("\nÊtes-vous sûr(e) de vouloir vous déconnecter ?")) { if (useFakeData) { console.log('Fake disconnect:', mockUser); router.push(`${FE_USERS_LOGIN_URL}`); } else { console.log('Fake disconnect:', mockUser); router.push(`${FE_USERS_LOGIN_URL}`); } } }; export const createProfile = (data,csrfToken) => { const request = new Request( `${BE_AUTH_PROFILE_URL}`, { method:'POST', headers: { 'Content-Type':'application/json', 'X-CSRFToken': csrfToken }, credentials: 'include', body: JSON.stringify(data), } ); return fetch(request).then(response => response.json()) } export const updateProfile = (id, data, csrfToken) => { const request = new Request( `${BE_AUTH_PROFILE_URL}/${id}`, { method:'PUT', headers: { 'Content-Type':'application/json', 'X-CSRFToken': csrfToken }, credentials: 'include', body: JSON.stringify(data), } ); return fetch(request).then(response => response.json()) } export const sendNewPassword = (data, csrfToken) => { const request = new Request( `${BE_AUTH_NEW_PASSWORD_URL}`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRFToken': csrfToken }, credentials: 'include', body: JSON.stringify(data), } ); return fetch(request).then(response => response.json()) } export const subscribe = (data,csrfToken) =>{ const request = new Request( `${BE_AUTH_REGISTER_URL}`, { method:'POST', headers: { 'Content-Type':'application/json', 'X-CSRFToken': csrfToken }, credentials: 'include', body: JSON.stringify( data), } ); return fetch(request).then(response => response.json()) } export const resetPassword = (uuid, data, csrfToken) => { const request = new Request( `${BE_AUTH_RESET_PASSWORD_URL}/${uuid}`, { method:'POST', headers: { 'Content-Type':'application/json', 'X-CSRFToken': csrfToken }, credentials: 'include', body: JSON.stringify(data), } ); return fetch(request).then(response => response.json()) } export const getResetPassword = (uuid) => { const url= `${BE_AUTH_RESET_PASSWORD_URL}/${uuid}`; return fetch(url, { headers: { 'Content-Type': 'application/json', }, }).then(response => response.json()) }