feat(backend): Endpoints voor het verwijderen van leerobjecten
This commit is contained in:
		
							parent
							
								
									db92eff759
								
							
						
					
					
						commit
						a7f90aace3
					
				
					 3 changed files with 37 additions and 0 deletions
				
			
		|  | @ -92,3 +92,22 @@ export async function handlePostLearningObject(req: AuthenticatedRequest, res: R | ||||||
|     ); |     ); | ||||||
|     res.json(learningObject); |     res.json(learningObject); | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | export async function handleDeleteLearningObject(req: AuthenticatedRequest, res: Response): Promise<void> { | ||||||
|  |     const learningObjectId = getLearningObjectIdentifierFromRequest(req); | ||||||
|  | 
 | ||||||
|  |     if (!learningObjectId.version) { | ||||||
|  |         throw new BadRequestException("When deleting a learning object, a version must be specified."); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     const deletedLearningObject = await learningObjectService.deleteLearningObject({ | ||||||
|  |         hruid: learningObjectId.hruid, | ||||||
|  |         version: learningObjectId.version, | ||||||
|  |         language: learningObjectId.language | ||||||
|  |     }); | ||||||
|  |     if (deletedLearningObject) { | ||||||
|  |         res.json(deletedLearningObject); | ||||||
|  |     } else { | ||||||
|  |         throw new NotFoundException("Learning object not found"); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -42,4 +42,13 @@ export class LearningObjectRepository extends DwengoEntityRepository<LearningObj | ||||||
|             { populate: ['admins'] } // Make sure to load admin relations
 |             { populate: ['admins'] } // Make sure to load admin relations
 | ||||||
|         ); |         ); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     public async removeByIdentifier(identifier: LearningObjectIdentifier): Promise<LearningObject | null> { | ||||||
|  |         const learningObject = await this.findByIdentifier(identifier); | ||||||
|  |         if (learningObject) { | ||||||
|  |             await this.em.removeAndFlush(learningObject); | ||||||
|  |         } | ||||||
|  |         return learningObject; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -10,6 +10,7 @@ import { | ||||||
| import {getLearningObjectRepository, getTeacherRepository} from "../../data/repositories"; | import {getLearningObjectRepository, getTeacherRepository} from "../../data/repositories"; | ||||||
| import {processLearningObjectZip} from "./learning-object-zip-processing-service"; | import {processLearningObjectZip} from "./learning-object-zip-processing-service"; | ||||||
| import {LearningObject} from "../../entities/content/learning-object.entity"; | import {LearningObject} from "../../entities/content/learning-object.entity"; | ||||||
|  | import { LearningObjectIdentifier } from '../../entities/content/learning-object-identifier.js'; | ||||||
| 
 | 
 | ||||||
| function getProvider(id: LearningObjectIdentifierDTO): LearningObjectProvider { | function getProvider(id: LearningObjectIdentifierDTO): LearningObjectProvider { | ||||||
|     if (id.hruid.startsWith(getEnvVar(envVars.UserContentPrefix))) { |     if (id.hruid.startsWith(getEnvVar(envVars.UserContentPrefix))) { | ||||||
|  | @ -83,6 +84,14 @@ const learningObjectService = { | ||||||
| 
 | 
 | ||||||
|         await learningObjectRepository.save(learningObject, {preventOverwrite: true}); |         await learningObjectRepository.save(learningObject, {preventOverwrite: true}); | ||||||
|         return learningObject; |         return learningObject; | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Deletes the learning object with the given identifier. | ||||||
|  |      */ | ||||||
|  |     async deleteLearningObject(id: LearningObjectIdentifier): Promise<LearningObject | null> { | ||||||
|  |         const learningObjectRepository = getLearningObjectRepository(); | ||||||
|  |         return await learningObjectRepository.removeByIdentifier(id); | ||||||
|     } |     } | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Reference in a new issue
	
	 Gerald Schmittinger
						Gerald Schmittinger