refactor(backend): Gebruik requireFields voor leerpad- en leerobject-controllers.
This commit is contained in:
		
							parent
							
								
									ebc4c16c89
								
							
						
					
					
						commit
						3fba1240ee
					
				
					 2 changed files with 16 additions and 9 deletions
				
			
		|  | @ -9,6 +9,7 @@ import { envVars, getEnvVar } from '../util/envVars.js'; | |||
| import { FilteredLearningObject, LearningObjectIdentifierDTO, LearningPathIdentifier } from '@dwengo-1/common/interfaces/learning-content'; | ||||
| import { UploadedFile } from 'express-fileupload'; | ||||
| import { AuthenticatedRequest } from '../middleware/auth/authenticated-request'; | ||||
| import { requireFields } from './error-helper.js'; | ||||
| 
 | ||||
| function getLearningObjectIdentifierFromRequest(req: Request): LearningObjectIdentifierDTO { | ||||
|     if (!req.params.hruid) { | ||||
|  | @ -22,12 +23,12 @@ function getLearningObjectIdentifierFromRequest(req: Request): LearningObjectIde | |||
| } | ||||
| 
 | ||||
| function getLearningPathIdentifierFromRequest(req: Request): LearningPathIdentifier { | ||||
|     if (!req.query.hruid) { | ||||
|         throw new BadRequestException('HRUID is required.'); | ||||
|     } | ||||
|     const { hruid, language } = req.params; | ||||
|     requireFields({ hruid }); | ||||
| 
 | ||||
|     return { | ||||
|         hruid: req.params.hruid, | ||||
|         language: (req.query.language as Language) || FALLBACK_LANG, | ||||
|         hruid, | ||||
|         language: (language as Language) || FALLBACK_LANG, | ||||
|     }; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -10,6 +10,7 @@ import { getAssignmentRepository, getGroupRepository } from '../data/repositorie | |||
| import { AuthenticatedRequest } from '../middleware/auth/authenticated-request.js'; | ||||
| import { LearningPath, LearningPathIdentifier } from '@dwengo-1/common/interfaces/learning-content'; | ||||
| import { getTeacher } from '../services/teachers.js'; | ||||
| import { requireFields } from './error-helper.js'; | ||||
| 
 | ||||
| /** | ||||
|  * Fetch learning paths based on query parameters. | ||||
|  | @ -73,6 +74,10 @@ export async function getLearningPaths(req: Request, res: Response): Promise<voi | |||
| function postOrPutLearningPath(isPut: boolean): (req: AuthenticatedRequest, res: Response) => Promise<void> { | ||||
|     return async (req, res) => { | ||||
|         const path: LearningPath = req.body; | ||||
|         const { hruid: hruidParam, language: languageParam } = req.params; | ||||
| 
 | ||||
|         requireFields({ hruidParam, languageParam, path }); | ||||
| 
 | ||||
|         const teacher = await getTeacher(req.auth!.username); | ||||
|         if (isPut) { | ||||
|             if (req.params.hruid !== path.hruid || req.params.language !== path.language) { | ||||
|  | @ -88,10 +93,11 @@ export const postLearningPath = postOrPutLearningPath(false); | |||
| export const putLearningPath = postOrPutLearningPath(true); | ||||
| 
 | ||||
| export async function deleteLearningPath(req: AuthenticatedRequest, res: Response): Promise<void> { | ||||
|     const id: LearningPathIdentifier = { | ||||
|         hruid: req.params.hruid, | ||||
|         language: req.params.language as Language, | ||||
|     }; | ||||
|     const { hruid, language } = req.params; | ||||
| 
 | ||||
|     requireFields({ hruid, language }); | ||||
| 
 | ||||
|     const id: LearningPathIdentifier = { hruid, language: language as Language }; | ||||
|     const deletedPath = await learningPathService.deleteLearningPath(id); | ||||
|     if (deletedPath) { | ||||
|         res.json(deletedPath); | ||||
|  |  | |||
		Reference in a new issue
	
	 Gerald Schmittinger
						Gerald Schmittinger