feat: delete op class geimplementeerd

This commit is contained in:
Adriaan Jacquet 2025-04-01 17:06:26 +02:00
parent 6290d3dd9b
commit da5cb7d02d
3 changed files with 17 additions and 4 deletions

View file

@ -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<void> {
const full = req.query.full === 'true';
@ -28,7 +29,7 @@ export async function createClassHandler(req: Request, res: Response): Promise<v
return;
}
res.status(201).json(cls);
res.status(201).json({ cls });
}
export async function getClassHandler(req: Request, res: Response): Promise<void> {
@ -40,7 +41,14 @@ export async function getClassHandler(req: Request, res: Response): Promise<void
return;
}
res.json(cls);
res.json({ cls });
}
export async function deleteClassHandler(req: Request, res: Response): Promise<void> {
const classId = req.params.id;
const cls = await deleteClass(classId);
res.json({ cls });
}
export async function getClassStudentsHandler(req: Request, res: Response): Promise<void> {

View file

@ -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);

View file

@ -64,6 +64,10 @@ export async function createClass(classData: ClassDTO): Promise<ClassDTO | null>
export async function deleteClass(classId: string): Promise<ClassDTO> {
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);