feat: get all submissions route toegevoegd

This commit is contained in:
Adriaan Jacquet 2025-04-01 17:02:42 +02:00
parent 7ae2f1de0c
commit 6290d3dd9b
4 changed files with 59 additions and 41 deletions

View file

@ -1,26 +1,32 @@
import { getGroupRepository, getSubmissionRepository } from '../data/repositories.js';
import { Language } from '../entities/content/language.js';
import { LearningObjectIdentifier } from '../entities/content/learning-object-identifier.js';
import { NotFoundException } from '../exceptions/not-found-exception.js';
import { mapToSubmission, mapToSubmissionDTO, SubmissionDTO } from '../interfaces/submission.js';
export async function getSubmission(
learningObjectHruid: string,
language: Language,
version: number,
loId: LearningObjectIdentifier,
submissionNumber: number
): Promise<SubmissionDTO | null> {
const loId = new LearningObjectIdentifier(learningObjectHruid, language, version);
): Promise<SubmissionDTO> {
const submissionRepository = getSubmissionRepository();
const submission = await submissionRepository.findSubmissionByLearningObjectAndSubmissionNumber(loId, submissionNumber);
if (!submission) {
return null;
throw new NotFoundException('Could not find submission');
}
return mapToSubmissionDTO(submission);
}
export async function getAllSubmissions(
loId: LearningObjectIdentifier,
): Promise<SubmissionDTO[]> {
const submissionRepository = getSubmissionRepository();
const submissions = await submissionRepository.findByLearningObject(loId);
return submissions.map(mapToSubmissionDTO);
}
export async function createSubmission(submissionDTO: SubmissionDTO) {
const submissionRepository = getSubmissionRepository();
const submission = mapToSubmission(submissionDTO);
@ -35,16 +41,15 @@ export async function createSubmission(submissionDTO: SubmissionDTO) {
return mapToSubmissionDTO(submission);
}
export async function deleteSubmission(learningObjectHruid: string, language: Language, version: number, submissionNumber: number) {
export async function deleteSubmission(loId: LearningObjectIdentifier, submissionNumber: number) {
const submissionRepository = getSubmissionRepository();
const submission = getSubmission(learningObjectHruid, language, version, submissionNumber);
const submission = getSubmission(loId, submissionNumber);
if (!submission) {
return null;
throw new NotFoundException('Could not delete submission because it does not exist');
}
const loId = new LearningObjectIdentifier(learningObjectHruid, language, version);
await submissionRepository.deleteSubmissionByLearningObjectAndSubmissionNumber(loId, submissionNumber);
return submission;