From da5cb7d02d26142b563a88e820ed431cec9881db Mon Sep 17 00:00:00 2001 From: Adriaan Jacquet Date: Tue, 1 Apr 2025 17:06:26 +0200 Subject: [PATCH] feat: delete op class geimplementeerd --- backend/src/controllers/classes.ts | 14 +++++++++++--- backend/src/routes/classes.ts | 3 ++- backend/src/services/classes.ts | 4 ++++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/backend/src/controllers/classes.ts b/backend/src/controllers/classes.ts index ba11da8e..acf19476 100644 --- a/backend/src/controllers/classes.ts +++ b/backend/src/controllers/classes.ts @@ -1,6 +1,7 @@ import { Request, Response } from 'express'; -import { createClass, getAllClasses, getClass, getClassStudents, getClassTeacherInvitations } from '../services/classes.js'; +import { createClass, deleteClass, getAllClasses, getClass, getClassStudents, getClassTeacherInvitations } from '../services/classes.js'; import { ClassDTO } from '../interfaces/class.js'; +import { NotFoundException } from '../exceptions/not-found-exception.js'; export async function getAllClassesHandler(req: Request, res: Response): Promise { const full = req.query.full === 'true'; @@ -28,7 +29,7 @@ export async function createClassHandler(req: Request, res: Response): Promise { @@ -40,7 +41,14 @@ export async function getClassHandler(req: Request, res: Response): Promise { + const classId = req.params.id; + const cls = await deleteClass(classId); + + res.json({ cls }); } export async function getClassStudentsHandler(req: Request, res: Response): Promise { diff --git a/backend/src/routes/classes.ts b/backend/src/routes/classes.ts index e0972988..dc434fb0 100644 --- a/backend/src/routes/classes.ts +++ b/backend/src/routes/classes.ts @@ -15,9 +15,10 @@ router.get('/', getAllClassesHandler); router.post('/', createClassHandler); -// Information about an class with id 'id' router.get('/:id', getClassHandler); +router.delete('/:id', deleteClassHandler); + router.get('/:id/teacher-invitations', getTeacherInvitationsHandler); router.get('/:id/students', getClassStudentsHandler); diff --git a/backend/src/services/classes.ts b/backend/src/services/classes.ts index f2cb79e8..dcf6a432 100644 --- a/backend/src/services/classes.ts +++ b/backend/src/services/classes.ts @@ -64,6 +64,10 @@ export async function createClass(classData: ClassDTO): Promise export async function deleteClass(classId: string): Promise { const cls = await fetchClass(classId); + if (!cls) { + throw new NotFoundException('Could not delete class because it does not exist'); + } + const classRepository = getClassRepository(); await classRepository.deleteById(classId);