calendrier-avent/actions/results.ts

33 lines
927 B
TypeScript

"use server";
import prisma from "@/lib/prisma";
export interface Results {
name: string;
total: number;
}
export async function getStudentResults(testId: number) {
const grades = await prisma.grade.findMany({ where: { testId: testId, user: { isTeacher: false } } });
const allGrades = ['1', '1.5', '2', '2.5', '3', '3.5', '4', '4.5', '5', '5.5', '6'];
let gradeOccurences = new Array(allGrades.length).fill(0);
const gradeList = grades.map((grade) => grade.grade);
for (let i = 0; i < gradeList.length; i++) {
gradeOccurences[allGrades.indexOf(gradeList[i].toString())]++;
}
let data: Results[] = [];
for (let i = 0; i < gradeOccurences.length; i++) {
data.push({
name: allGrades[i],
total: gradeOccurences[i],
});
}
return data;
}
export async function getTeacherResult(testId: number) {
return await prisma.grade.findFirst({ where: { testId: testId, user: { isTeacher: true } } });
}