refactor: changement de la philosophie de logging

This commit is contained in:
Luc SORIGNET
2025-02-22 15:28:20 +01:00
parent 508847940c
commit c7723eceee
28 changed files with 217 additions and 161 deletions

View File

@ -4,6 +4,7 @@ import Tab from '@/components/Tab';
import TabContent from '@/components/TabContent';
import Button from '@/components/Button';
import InputText from '@/components/InputText';
import logger from '@/utils/logger';
export default function SettingsPage() {
const [activeTab, setActiveTab] = useState('structure');
@ -54,17 +55,17 @@ export default function SettingsPage() {
return;
}
// Logique pour mettre à jour l'email et le mot de passe
console.log('Email:', email);
console.log('Password:', password);
logger.debug('Email:', email);
logger.debug('Password:', password);
};
const handleSmtpSubmit = (e) => {
e.preventDefault();
// Logique pour mettre à jour les paramètres SMTP
console.log('SMTP Server:', smtpServer);
console.log('SMTP Port:', smtpPort);
console.log('SMTP User:', smtpUser);
console.log('SMTP Password:', smtpPassword);
logger.debug('SMTP Server:', smtpServer);
logger.debug('SMTP Port:', smtpPort);
logger.debug('SMTP User:', smtpUser);
logger.debug('SMTP Password:', smtpPassword);
};
return (

View File

@ -23,9 +23,8 @@ import { createDatas,
fetchTuitionPaymentModes } from '@/app/actions/schoolAction';
import SidebarTabs from '@/components/SidebarTabs';
import FilesManagement from '@/components/Structure/Files/FilesManagement';
import { fetchRegisterFormFileTemplate } from '@/app/actions/subscriptionAction';
import logger from '@/utils/logger';
export default function Page() {
@ -75,7 +74,7 @@ export default function Page() {
.then((data)=> {
setFichiers(data)
})
.catch(error => console.error('Error fetching files:', error));
.catch(error => logger.error('Error fetching files:', error));
// Fetch data for registration payment plans
handleRegistrationPaymentPlans();
@ -95,7 +94,7 @@ export default function Page() {
.then(data => {
setSpecialities(data);
})
.catch(error => console.error('Error fetching specialities:', error));
.catch(error => logger.error('Error fetching specialities:', error));
};
const handleTeachers = () => {
@ -103,7 +102,7 @@ export default function Page() {
.then(data => {
setTeachers(data);
})
.catch(error => console.error('Error fetching teachers:', error));
.catch(error => logger.error('Error fetching teachers:', error));
};
const handleClasses = () => {
@ -111,7 +110,7 @@ export default function Page() {
.then(data => {
setClasses(data);
})
.catch(error => console.error('Error fetching classes:', error));
.catch(error => logger.error('Error fetching classes:', error));
};
const handleSchedules = () => {
@ -119,7 +118,7 @@ export default function Page() {
.then(data => {
setSchedules(data);
})
.catch(error => console.error('Error fetching schedules:', error));
.catch(error => logger.error('Error fetching schedules:', error));
};
const handleRegistrationDiscounts = () => {
@ -127,7 +126,7 @@ export default function Page() {
.then(data => {
setRegistrationDiscounts(data);
})
.catch(error => console.error('Error fetching registration discounts:', error));
.catch(error => logger.error('Error fetching registration discounts:', error));
};
const handleTuitionDiscounts = () => {
@ -135,7 +134,7 @@ export default function Page() {
.then(data => {
setTuitionDiscounts(data);
})
.catch(error => console.error('Error fetching tuition discounts:', error));
.catch(error => logger.error('Error fetching tuition discounts:', error));
};
const handleRegistrationFees = () => {
@ -143,7 +142,7 @@ export default function Page() {
.then(data => {
setRegistrationFees(data);
})
.catch(error => console.error('Error fetching registration fees:', error));
.catch(error => logger.error('Error fetching registration fees:', error));
};
const handleTuitionFees = () => {
@ -151,7 +150,7 @@ export default function Page() {
.then(data => {
setTuitionFees(data);
})
.catch(error => console.error('Error fetching tuition fees', error));
.catch(error => logger.error('Error fetching tuition fees', error));
};
const handleRegistrationPaymentPlans = () => {
@ -159,7 +158,7 @@ export default function Page() {
.then(data => {
setRegistrationPaymentPlans(data);
})
.catch(error => console.error('Error fetching registration payment plans:', error));
.catch(error => logger.error('Error fetching registration payment plans:', error));
};
const handleTuitionPaymentPlans = () => {
@ -167,7 +166,7 @@ export default function Page() {
.then(data => {
setTuitionPaymentPlans(data);
})
.catch(error => console.error('Error fetching tuition payment plans:', error));
.catch(error => logger.error('Error fetching tuition payment plans:', error));
};
const handleRegistrationPaymentModes = () => {
@ -175,7 +174,7 @@ export default function Page() {
.then(data => {
setRegistrationPaymentModes(data);
})
.catch(error => console.error('Error fetching registration payment modes:', error));
.catch(error => logger.error('Error fetching registration payment modes:', error));
};
const handleTuitionPaymentModes = () => {
@ -183,7 +182,7 @@ export default function Page() {
.then(data => {
setTuitionPaymentModes(data);
})
.catch(error => console.error('Error fetching tuition payment modes:', error));
.catch(error => logger.error('Error fetching tuition payment modes:', error));
};
const handleCreate = (url, newData, setDatas) => {
@ -193,7 +192,7 @@ export default function Page() {
return data;
})
.catch(error => {
console.error('Error creating data:', error);
logger.error('Error creating data:', error);
throw error;
});
};
@ -205,7 +204,7 @@ export default function Page() {
return data;
})
.catch(error => {
console.error('Error editing data:', error);
logger.error('Error editing data:', error);
throw error;
});
};
@ -217,7 +216,7 @@ export default function Page() {
return data;
})
.catch(error => {
console.error('Error deleting data:', error);
logger.error('Error deleting data:', error);
throw error;
});
};
@ -234,11 +233,11 @@ export default function Page() {
})
.then(response => response.json())
.then(data => {
console.log('Planning mis à jour avec succès :', data);
logger.debug('Planning mis à jour avec succès :', data);
//setDatas(data);
})
.catch(error => {
console.error('Erreur :', error);
logger.error('Erreur :', error);
});
};

View File

@ -1,12 +1,11 @@
'use client'
import React, { useState, useEffect } from 'react';
import React, { useState } from 'react';
import { useSearchParams, useRouter } from 'next/navigation';
import InscriptionFormShared from '@/components/Inscription/InscriptionFormShared';
import { FE_ADMIN_SUBSCRIPTIONS_URL } from '@/utils/Url';
import { useCsrfToken } from '@/context/CsrfContext';
import { mockStudent } from '@/data/mockStudent';
import { editRegisterForm, fetchRegisterForm } from '@/app/actions/subscriptionAction';
import { editRegisterForm } from '@/app/actions/subscriptionAction';
import logger from '@/utils/logger';
const useFakeData = process.env.NEXT_PUBLIC_USE_FAKE_DATA === 'true';
export default function Page() {
@ -23,20 +22,20 @@ export default function Page() {
const handleSubmit = (data) => {
if (useFakeData) {
console.log('Fake submit:', data);
logger.debug('Fake submit:', data);
return;
}
editRegisterForm(studentId, data, csrfToken)
.then((result) => {
console.log('Success:', result);
logger.debug('Success:', result);
router.push(FE_ADMIN_SUBSCRIPTIONS_URL);
})
.catch((error) => {
console.error('Error:', error.message);
logger.error('Error:', error.message);
if (error.details) {
console.error('Form errors:', error.details);
logger.error('Form errors:', error.details);
setFormErrors(error.details);
}
});

View File

@ -45,6 +45,7 @@ import DjangoCSRFToken from '@/components/DjangoCSRFToken'
import { useCsrfToken } from '@/context/CsrfContext';
import { fetchRegistrationFileGroups } from '@/app/actions/registerFileGroupAction';
import { ESTABLISHMENT_ID } from '@/utils/Url';
import logger from '@/utils/logger';
const useFakeData = process.env.NEXT_PUBLIC_USE_FAKE_DATA === 'true';
@ -99,7 +100,7 @@ export default function Page({ params: { locale } }) {
}
const requestErrorHandler = (err)=>{
console.error('Error fetching data:', err);
logger.error('Error fetching data:', err);
}
/**
@ -159,28 +160,25 @@ const registerFormArchivedDataHandler = (data) => {
}
}
// TODO: revoir le système de pagination et de UseEffect
useEffect(() => {
const fetchInitialData = async () => {
try {
const [classesData, studentsData] = await Promise.all([
fetchClasses(),
fetchStudents()
]);
useEffect(() => {
fetchClasses()
.then(data => {
setClasses(data);
console.log('Success Classes:', data);
})
.catch(error => {
console.error('Error fetching classes:', error);
});
fetchStudents()
.then(data => {
console.log('Success STUDENTS:', data);
setEleves(data);
})
.catch(error => {
console.error('Error fetching data:', error);
error = error.message;
console.log(error);
});
}, [registrationFormsDataPending]);
setClasses(classesData);
setEleves(studentsData);
logger.debug('Success - Classes:', classesData);
logger.debug('Success - Students:', studentsData);
} catch (error) {
logger.error('Error fetching initial data:', error);
}
};
fetchInitialData();
}, []);
useEffect(() => {
@ -199,11 +197,11 @@ const registerFormArchivedDataHandler = (data) => {
.catch(requestErrorHandler)
fetchRegisterFormFileTemplate()
.then((data)=> {
console.log(data);
logger.debug(data);
setFichiers(data)
})
.catch((err)=>{ err = err.message; console.log(err);})
.catch((err)=>{ err = err.message; logger.debug(err);})
fetchRegistrationDiscounts()
.then(data => {
setRegistrationDiscounts(data);
@ -228,7 +226,7 @@ const registerFormArchivedDataHandler = (data) => {
.then(data => {
setGroups(data);
})
.catch(error => console.error('Error fetching file groups:', error));
.catch(error => logger.error('Error fetching file groups:', error));
} else {
setTimeout(() => {
setRegistrationFormsDataPending(mockFicheInscription);
@ -258,7 +256,7 @@ useEffect(() => {
.catch(requestErrorHandler)
fetchRegisterFormFileTemplate()
.then((data)=> {setFichiers(data)})
.catch((err)=>{ err = err.message; console.log(err);});
.catch((err)=>{ err = err.message; logger.debug(err);});
} else {
setTimeout(() => {
setRegistrationFormsDataPending(mockFicheInscription);
@ -300,13 +298,13 @@ useEffect(()=>{
onConfirm: () => {
archiveRegisterForm(id)
.then(data => {
console.log('Success:', data);
logger.debug('Success:', data);
setRegistrationForms(registrationForms.filter(fiche => fiche.id !== id));
setReloadFetch(true);
alert("Le dossier d'inscription a été correctement archivé");
})
.catch(error => {
console.error('Error archiving data:', error);
logger.error('Error archiving data:', error);
alert("Erreur lors de l'archivage du dossier d'inscription.\nContactez l'administrateur.");
});
}
@ -319,11 +317,11 @@ useEffect(()=>{
message: `Avertissement ! \nVous êtes sur le point d'envoyer un dossier d'inscription à ${nom} ${prenom}\nÊtes-vous sûr(e) de vouloir poursuivre l'opération ?`,
onConfirm: () => {
sendRegisterForm(id).then(data => {
console.log('Success:', data);
logger.debug('Success:', data);
setReloadFetch(true);
})
.catch(error => {
console.error('Error fetching data:', error);
logger.error('Error fetching data:', error);
});
}
});
@ -332,16 +330,16 @@ useEffect(()=>{
const affectationClassFormSubmitHandler = (formdata)=> {
editRegisterForm(student.id,formData, csrfToken)
.then(data => {
console.log('Success:', data);
logger.debug('Success:', data);
setReloadFetch(true);
})
.catch(error => {
console.error('Error :', error);
logger.error('Error :', error);
});
}
const updateStatusAction = (id, newStatus) => {
console.log('Edit fiche inscription with id:', id);
logger.debug('Edit fiche inscription with id:', id);
};
const handleSearchChange = (event) => {
@ -353,7 +351,7 @@ useEffect(()=>{
};
const createRF = (updatedData) => {
console.log('createRF updatedData:', updatedData);
logger.debug('createRF updatedData:', updatedData);
const selectedRegistrationFeesIds = updatedData.selectedRegistrationFees.map(feeId => feeId)
const selectedRegistrationDiscountsIds = updatedData.selectedRegistrationDiscounts.map(discountId => discountId)
const selectedTuitionFeesIds = updatedData.selectedTuitionFees.map(feeId => feeId)
@ -389,7 +387,7 @@ useEffect(()=>{
setReloadFetch(true);
})
.catch((error) => {
console.error('Error:', error);
logger.error('Error:', error);
});
} else {
const data = {
@ -428,17 +426,17 @@ useEffect(()=>{
sendConfirmRegisterForm(data.student.id, updatedData.studentLastName, updatedData.studentFirstName);
}
closeModal();
console.log('Success:', data);
logger.debug('Success:', data);
// Forcer le rechargement complet des données
setReloadFetch(true);
})
.catch((error) => {
console.error('Error:', error);
logger.error('Error:', error);
});
}
})
.catch(error => {
console.error('Error:', error);
logger.error('Error:', error);
});
}
}

View File

@ -5,6 +5,7 @@ import { useSearchParams, useRouter } from 'next/navigation';
import { useCsrfToken } from '@/context/CsrfContext';
import { FE_PARENTS_HOME_URL} from '@/utils/Url';
import { editRegisterForm} from '@/app/actions/subscriptionAction';
import logger from '@/utils/logger';
export default function Page() {
const searchParams = useSearchParams();
@ -16,10 +17,10 @@ export default function Page() {
const handleSubmit = async (data) => {
try {
const result = await editRegisterForm(studentId, data, csrfToken);
console.log('Success:', result);
logger.debug('Success:', result);
router.push(FE_PARENTS_HOME_URL);
} catch (error) {
console.error('Error:', error);
logger.error('Error:', error);
}
};

View File

@ -11,6 +11,7 @@ import { fetchMessages } from '@/app/actions/messagerieAction';
import ProtectedRoute from '@/components/ProtectedRoute';
import { disconnect } from '@/app/actions/authAction';
import Popup from '@/components/Popup';
import logger from '@/utils/logger';
export default function Layout({
children,
@ -39,10 +40,10 @@ export default function Layout({
if (data) {
setMessages(data);
}
console.log('Success :', data);
logger.debug('Success :', data);
})
.catch(error => {
console.error('Error fetching data:', error);
logger.error('Error fetching data:', error);
})
.finally(() => {
setIsLoading(false);

View File

@ -7,6 +7,7 @@ import StatusLabel from '@/components/StatusLabel';
import useLocalStorage from '@/hooks/useLocalStorage';
import { FE_PARENTS_EDIT_INSCRIPTION_URL } from '@/utils/Url';
import { fetchChildren } from '@/app/actions/subscriptionAction';
import logger from '@/utils/logger';
export default function ParentHomePage() {
const [actions, setActions] = useState([]);
@ -25,7 +26,7 @@ export default function ParentHomePage() {
function handleEdit(eleveId) {
// Logique pour éditer le dossier de l'élève
console.log(`Edit dossier for student id: ${eleveId}`);
logger.debug(`Edit dossier for student id: ${eleveId}`);
router.push(`${FE_PARENTS_EDIT_INSCRIPTION_URL}?id=${userId}&studentId=${eleveId}`);
}
const actionColumns = [

View File

@ -2,6 +2,7 @@
import React, { useState } from 'react';
import Button from '@/components/Button';
import InputText from '@/components/InputText';
import logger from '@/utils/logger';
export default function SettingsPage() {
const [email, setEmail] = useState('');
@ -27,8 +28,8 @@ export default function SettingsPage() {
return;
}
// Logique pour mettre à jour l'email et le mot de passe
console.log('Email:', email);
console.log('Password:', password);
logger.debug('Email:', email);
logger.debug('Password:', password);
};
return (

View File

@ -9,14 +9,14 @@ import Button from '@/components/Button'; // Importez le composant Button
import { User, KeySquare } from 'lucide-react'; // Importez directement les icônes nécessaires
import {
FE_USERS_NEW_PASSWORD_URL,
BE_AUTH_INFO_SESSION,
FE_ADMIN_SUBSCRIPTIONS_URL,
FE_PARENTS_HOME_URL
} from '@/utils/Url';
import { login } from '@/app/actions/authAction';
import useLocalStorage from '@/hooks/useLocalStorage';
import { signIn, getSession } from 'next-auth/react';
import { getSession } from 'next-auth/react';
import { useCsrfToken } from '@/context/CsrfContext'; // Importez le hook useCsrfToken
import logger from '@/utils/logger';
const useFakeData = process.env.NEXT_PUBLIC_USE_FAKE_DATA === 'true';
@ -44,7 +44,7 @@ export default function Page() {
email: formData.get('login'),
password: formData.get('password'),
}).then(result => {
console.log('Sign In Result', result);
logger.debug('Sign In Result', result);
setIsLoading(false);
if (result.error) {
setErrorMessage(result.error);
@ -54,7 +54,7 @@ export default function Page() {
throw new Error('Session not found');
}
const user = session.user;
console.log('User Session:', user);
logger.debug('User Session:', user);
localStorage.setItem('userId', user.id); // Stocker l'identifiant de l'utilisateur
if (user.droit === 0) {
// Vue ECOLE
@ -68,13 +68,13 @@ export default function Page() {
// Cas anormal
}
}).catch(error => {
console.error('Error during session retrieval:', error);
logger.error('Error during session retrieval:', error);
setIsLoading(false);
setErrorMessage('An error occurred during session retrieval.');
});
}
}).catch(error => {
console.error('Error during sign in:', error);
logger.error('Error during sign in:', error);
setIsLoading(false);
setErrorMessage('An error occurred during sign in.');
});

View File

@ -12,6 +12,7 @@ import { User } from 'lucide-react'; // Importez directement les icônes nécess
import { FE_USERS_LOGIN_URL } from '@/utils/Url';
import { useCsrfToken } from '@/context/CsrfContext';
import { sendNewPassword } from '@/app/actions/authAction';
import logger from '@/utils/logger';
const useFakeData = process.env.NEXT_PUBLIC_USE_FAKE_DATA === 'true';
@ -38,7 +39,7 @@ export default function Page() {
const data = {email: formData.get('email')}
sendNewPassword(data, csrfToken)
.then(data => {
console.log('Success:', data);
logger.debug('Success:', data);
setUserFieldError("");
setErrorMessage("");
if (data.errorMessage === "") {
@ -55,9 +56,9 @@ export default function Page() {
}
})
.catch(error => {
console.error('Error fetching data:', error);
logger.error('Error fetching data:', error);
error = error.errorMessage;
console.log(error);
logger.debug(error);
});
}
}

View File

@ -13,6 +13,7 @@ import { FE_USERS_LOGIN_URL } from '@/utils/Url';
import { KeySquare } from 'lucide-react'; // Importez directement les icônes nécessaires
import { useCsrfToken } from '@/context/CsrfContext';
import { getResetPassword, resetPassword } from '@/app/actions/authAction';
import logger from '@/utils/logger';
const useFakeData = process.env.NEXT_PUBLIC_USE_FAKE_DATA === 'true';
@ -37,7 +38,7 @@ export default function Page() {
} else {
getResetPassword(uuid)
.then(data => {
console.log('Success:', data);
logger.debug('Success:', data);
setIsLoading(true);
if(data.errorFields){
setPassword1FieldError(data.errorFields.password1)
@ -49,7 +50,7 @@ export default function Page() {
setIsLoading(false);
})
.catch(error => {
console.error('Error fetching data:', error);
logger.error('Error fetching data:', error);
});
}
}, []);
@ -67,7 +68,7 @@ export default function Page() {
}
resetPassword(uuid,data,csrfToken)
.then(data => {
console.log('Success:', data);
logger.debug('Success:', data);
setPassword1FieldError("")
setPassword2FieldError("")
setErrorMessage("")
@ -85,9 +86,9 @@ export default function Page() {
}
})
.catch(error => {
console.error('Error fetching data:', error);
logger.error('Error fetching data:', error);
error = error.errorMessage;
console.log(error);
logger.debug(error);
});
}
}

View File

@ -14,6 +14,7 @@ import { FE_USERS_LOGIN_URL } from '@/utils/Url';
import { useCsrfToken } from '@/context/CsrfContext';
import { subscribe } from '@/app/actions/authAction';
const useFakeData = process.env.NEXT_PUBLIC_USE_FAKE_DATA === 'true';
import logger from '@/utils/logger';
export default function Page() {
const searchParams = useSearchParams();
@ -80,7 +81,7 @@ export default function Page() {
password2: formData.get('password2'),
}
subscribe(data,csrfToken).then(data => {
console.log('Success:', data);
logger.debug('Success:', data);
setUserFieldError("")
setPassword1FieldError("")
setPassword2FieldError("")
@ -100,9 +101,9 @@ export default function Page() {
}
})
.catch(error => {
console.error('Error fetching data:', error);
logger.error('Error fetching data:', error);
error = error.errorMessage;
console.log(error);
logger.debug(error);
});
}
}