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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue