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
	
	 Adriaan Jacquet
						Adriaan Jacquet