Merge branch 'dev' into fix/questions-toon-enkel-groep

This commit is contained in:
Tibo De Peuter 2025-05-20 16:37:34 +02:00
commit 73ca508ff3
Signed by: tdpeuter
GPG key ID: 38297DE43F75FFE2
5 changed files with 118 additions and 62 deletions

View file

@ -1,12 +1,13 @@
import { getAssignmentRepository, getGroupRepository, getSubmissionRepository } from '../data/repositories.js';
import { 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';
import { SubmissionDTO } from '@dwengo-1/common/interfaces/submission';
import { fetchStudent } from './students.js';
import { getExistingGroupFromGroupDTO } from './groups.js';
import { fetchGroup, getExistingGroupFromGroupDTO } from './groups.js';
import { Submission } from '../entities/assignments/submission.entity.js';
import { Language } from '@dwengo-1/common/util/language';
import { fetchAssignment } from './assignments.js';
export async function fetchSubmission(loId: LearningObjectIdentifier, submissionNumber: number): Promise<Submission> {
const submissionRepository = getSubmissionRepository();
@ -64,15 +65,18 @@ export async function getSubmissionsForLearningObjectAndAssignment(
groupId?: number
): Promise<SubmissionDTO[]> {
const loId = new LearningObjectIdentifier(learningObjectHruid, language, version);
const assignment = await getAssignmentRepository().findByClassIdAndAssignmentId(classId, assignmentId);
let submissions: Submission[];
if (groupId !== undefined) {
const group = await getGroupRepository().findByAssignmentAndGroupNumber(assignment!, groupId);
submissions = await getSubmissionRepository().findAllSubmissionsForLearningObjectAndGroup(loId, group!);
} else {
submissions = await getSubmissionRepository().findAllSubmissionsForLearningObjectAndAssignment(loId, assignment!);
try {
let submissions: Submission[];
if (groupId !== undefined) {
const group = await fetchGroup(classId, assignmentId, groupId);
submissions = await getSubmissionRepository().findAllSubmissionsForLearningObjectAndGroup(loId, group);
} else {
const assignment = await fetchAssignment(classId, assignmentId);
submissions = await getSubmissionRepository().findAllSubmissionsForLearningObjectAndAssignment(loId, assignment);
}
return submissions.map((s) => mapToSubmissionDTO(s));
} catch (_) {
return [];
}
return submissions.map((s) => mapToSubmissionDTO(s));
}