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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue