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 { FilteredLearningObject, LearningObjectIdentifierDTO, LearningPathIdentifier } from '@dwengo-1/common/interfaces/learning-content'; | ||||||
| import { UploadedFile } from 'express-fileupload'; | import { UploadedFile } from 'express-fileupload'; | ||||||
| import { AuthenticatedRequest } from '../middleware/auth/authenticated-request'; | import { AuthenticatedRequest } from '../middleware/auth/authenticated-request'; | ||||||
|  | import { requireFields } from './error-helper.js'; | ||||||
| 
 | 
 | ||||||
| function getLearningObjectIdentifierFromRequest(req: Request): LearningObjectIdentifierDTO { | function getLearningObjectIdentifierFromRequest(req: Request): LearningObjectIdentifierDTO { | ||||||
|     if (!req.params.hruid) { |     if (!req.params.hruid) { | ||||||
|  | @ -22,12 +23,12 @@ function getLearningObjectIdentifierFromRequest(req: Request): LearningObjectIde | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function getLearningPathIdentifierFromRequest(req: Request): LearningPathIdentifier { | function getLearningPathIdentifierFromRequest(req: Request): LearningPathIdentifier { | ||||||
|     if (!req.query.hruid) { |     const { hruid, language } = req.params; | ||||||
|         throw new BadRequestException('HRUID is required.'); |     requireFields({ hruid }); | ||||||
|     } | 
 | ||||||
|     return { |     return { | ||||||
|         hruid: req.params.hruid, |         hruid, | ||||||
|         language: (req.query.language as Language) || FALLBACK_LANG, |         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 { AuthenticatedRequest } from '../middleware/auth/authenticated-request.js'; | ||||||
| import { LearningPath, LearningPathIdentifier } from '@dwengo-1/common/interfaces/learning-content'; | import { LearningPath, LearningPathIdentifier } from '@dwengo-1/common/interfaces/learning-content'; | ||||||
| import { getTeacher } from '../services/teachers.js'; | import { getTeacher } from '../services/teachers.js'; | ||||||
|  | import { requireFields } from './error-helper.js'; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Fetch learning paths based on query parameters. |  * 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> { | function postOrPutLearningPath(isPut: boolean): (req: AuthenticatedRequest, res: Response) => Promise<void> { | ||||||
|     return async (req, res) => { |     return async (req, res) => { | ||||||
|         const path: LearningPath = req.body; |         const path: LearningPath = req.body; | ||||||
|  |         const { hruid: hruidParam, language: languageParam } = req.params; | ||||||
|  | 
 | ||||||
|  |         requireFields({ hruidParam, languageParam, path }); | ||||||
|  | 
 | ||||||
|         const teacher = await getTeacher(req.auth!.username); |         const teacher = await getTeacher(req.auth!.username); | ||||||
|         if (isPut) { |         if (isPut) { | ||||||
|             if (req.params.hruid !== path.hruid || req.params.language !== path.language) { |             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 const putLearningPath = postOrPutLearningPath(true); | ||||||
| 
 | 
 | ||||||
| export async function deleteLearningPath(req: AuthenticatedRequest, res: Response): Promise<void> { | export async function deleteLearningPath(req: AuthenticatedRequest, res: Response): Promise<void> { | ||||||
|     const id: LearningPathIdentifier = { |     const { hruid, language } = req.params; | ||||||
|         hruid: req.params.hruid, | 
 | ||||||
|         language: req.params.language as Language, |     requireFields({ hruid, language }); | ||||||
|     }; | 
 | ||||||
|  |     const id: LearningPathIdentifier = { hruid, language: language as Language }; | ||||||
|     const deletedPath = await learningPathService.deleteLearningPath(id); |     const deletedPath = await learningPathService.deleteLearningPath(id); | ||||||
|     if (deletedPath) { |     if (deletedPath) { | ||||||
|         res.json(deletedPath); |         res.json(deletedPath); | ||||||
|  |  | ||||||
		Reference in a new issue
	
	 Gerald Schmittinger
						Gerald Schmittinger