diff --git a/components/Reviews.jsx b/components/Reviews.jsx index 8224925..ca59d93 100644 --- a/components/Reviews.jsx +++ b/components/Reviews.jsx @@ -8,8 +8,7 @@ export default function Reviews({ session, setOpen }) { const [reviews, setReviews] = useState([]); const [moyenne, setMoyenne] = useState(0); const [quizz, setQuizz] = useState([]); - - console.log(session); + function formatDate(dateString) { const date = new Date(dateString); @@ -32,6 +31,7 @@ export default function Reviews({ session, setOpen }) { // } // }; + const getQuizz = async () => { try { const fetcher = await fetch(`/api/satisfaction/fromSession?sessionId=${session.id}`); @@ -63,9 +63,9 @@ export default function Reviews({ session, setOpen }) { }; useEffect(() => { - console.log("Session info: ", session); // Vérifie que la session est bien définie - getQuizz(); - }, []); + getQuizz() + }, []) + const exportToExcel = () => { const data = quizz.map((question) => { diff --git a/pages/api/satisfaction/fromSession.js b/pages/api/satisfaction/fromSession.js index bd01bda..4169b50 100644 --- a/pages/api/satisfaction/fromSession.js +++ b/pages/api/satisfaction/fromSession.js @@ -34,7 +34,32 @@ export default async function handler(req, res) { }, }); - // Récupérer les satisfactions des comptes + + const userSatisfactionWithRegistration = await Promise.all( + satisfaction.map(async (satisfactionItem) => { + const registration = await prisma.registration.findFirst({ + where: { + sessionId: parseInt(sessionId), + userId: satisfactionItem.userId, // Utiliser le userId pour obtenir les infos d'inscription + }, + select: { + mail: true, + structure: true, + fonction: true, + typeFonction: true, + ville: true, + }, + }); + + return { + ...satisfactionItem, + registration, // Ajouter les informations d'inscription + }; + }) + ); + + // Récupération des satisfactions des comptes spéciaux + const accountSatisfaction = await prisma.accountSatisfaction.findMany({ where: { sessionId: sessionId ? parseInt(sessionId) : undefined, @@ -50,6 +75,7 @@ export default async function handler(req, res) { }, }); + // Récupérer les informations d'inscription associées pour chaque utilisateur const userSatisfactionWithRegistration = await Promise.all( userSatisfaction.map(async (satisfactionItem) => { @@ -76,6 +102,7 @@ export default async function handler(req, res) { // Récupérer les informations d'inscription associées pour chaque compte + const accountSatisfactionWithRegistration = await Promise.all( accountSatisfaction.map(async (satisfactionItem) => { const registration = await prisma.accountRegistration.findFirst({ @@ -99,12 +126,26 @@ export default async function handler(req, res) { }) ); + // Combiner les résultats des deux sources (utilisateurs et comptes) + const combinedSatisfaction = [ ...userSatisfactionWithRegistration, ...accountSatisfactionWithRegistration, ]; + // Combinaison des résultats + // const combinedSatisfaction = [ + // ...satisfaction.map(item => ({ + // ...item, + // source: 'user', // Identifier la source de la satisfaction + // })), + // ...accountSatisfaction.map(item => ({ + // ...item, + // source: 'account', // Identifier la source de la satisfaction + // })), + // ]; + console.log("Satisfactions récupérées : ", satisfaction); // Utilisation de la fonction serializeBigIntFields pour convertir correctement les BigInt