Merge remote-tracking branch 'origin/dev' into feat/indieningen-kunnen-posten-en-bekijken-#194

# Conflicts:
#	backend/tests/setup-tests.ts
This commit is contained in:
Gerald Schmittinger 2025-04-16 16:31:18 +02:00
commit dd2cdf3fe9
46 changed files with 1670 additions and 123 deletions

View file

@ -1,4 +1,4 @@
import { getAssignmentRepository, getSubmissionRepository } from '../data/repositories.js';
import {getAssignmentRepository, getGroupRepository, getSubmissionRepository} from '../data/repositories.js';
import { LearningObjectIdentifier } from '../entities/content/learning-object-identifier.js';
import { NotFoundException } from '../exceptions/not-found-exception.js';
import { mapToSubmission, mapToSubmissionDTO } from '../interfaces/submission.js';
@ -69,3 +69,24 @@ export async function getSubmissionsForLearningObjectAndAssignment(
return submissions.map((s) => mapToSubmissionDTO(s));
}
export async function getSubmissionsForLearningObjectAndGroup(
learningObjectHruid: string,
language: Language,
version: number,
classId: string,
assignmentNo: number,
groupNumber: number
): Promise<SubmissionDTO[]> {
const loId = new LearningObjectIdentifier(learningObjectHruid, language, version);
const assignment = await getAssignmentRepository().findByClassIdAndAssignmentId(classId, assignmentNo);
if (!assignment) {
throw new NotFoundException("Assignment not found!");
}
const group = await getGroupRepository().findByAssignmentAndGroupNumber(assignment, groupNumber);
if (!group) {
throw new NotFoundException("Group not found!");
}
const submissions = await getSubmissionRepository().findAllSubmissionsForGroup(group);
return submissions.map((s) => mapToSubmissionDTO(s));
}