feat: get all submissions route toegevoegd
This commit is contained in:
parent
7ae2f1de0c
commit
6290d3dd9b
4 changed files with 59 additions and 41 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue