From f1e9e3a8d64fa78d9e92d5770bd9aefef0a3dbfd Mon Sep 17 00:00:00 2001 From: Adriaan Jacquet Date: Tue, 22 Apr 2025 14:04:39 +0200 Subject: [PATCH] fix: verbod op toevoegen van student aan groep wanneer die student niet in de klas zit --- backend/src/services/groups.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/backend/src/services/groups.ts b/backend/src/services/groups.ts index 0c73c8c5..1a957772 100644 --- a/backend/src/services/groups.ts +++ b/backend/src/services/groups.ts @@ -9,6 +9,8 @@ import { fetchAssignment } from './assignments.js'; import { NotFoundException } from '../exceptions/not-found-exception.js'; import { putObject } from './service-helper.js'; import { fetchStudents } from './students.js'; +import { fetchClass } from './classes.js'; +import { BadRequestException } from '../exceptions/bad-request-exception.js'; export async function fetchGroup(classId: string, assignmentNumber: number, groupNumber: number): Promise { const assignment = await fetchAssignment(classId, assignmentNumber); @@ -60,9 +62,15 @@ export async function getExistingGroupFromGroupDTO(groupData: GroupDTO): Promise } export async function createGroup(groupData: GroupDTO, classid: string, assignmentNumber: number): Promise { + const cls = await fetchClass(classid); + const memberUsernames = (groupData.members as string[]) || []; const members = await fetchStudents(memberUsernames); + if (!members.every(student => cls.students.contains(student))) { + throw new BadRequestException("It is not allowed to add a student to a group when the student is not part of the class"); + } + const assignment = await fetchAssignment(classid, assignmentNumber); const groupRepository = getGroupRepository();