feat: delete op class geimplementeerd
This commit is contained in:
		
							parent
							
								
									6290d3dd9b
								
							
						
					
					
						commit
						da5cb7d02d
					
				
					 3 changed files with 17 additions and 4 deletions
				
			
		|  | @ -1,6 +1,7 @@ | ||||||
| import { Request, Response } from 'express'; | 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 { ClassDTO } from '../interfaces/class.js'; | ||||||
|  | import { NotFoundException } from '../exceptions/not-found-exception.js'; | ||||||
| 
 | 
 | ||||||
| export async function getAllClassesHandler(req: Request, res: Response): Promise<void> { | export async function getAllClassesHandler(req: Request, res: Response): Promise<void> { | ||||||
|     const full = req.query.full === 'true'; |     const full = req.query.full === 'true'; | ||||||
|  | @ -28,7 +29,7 @@ export async function createClassHandler(req: Request, res: Response): Promise<v | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     res.status(201).json(cls); |     res.status(201).json({ cls }); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export async function getClassHandler(req: Request, res: Response): Promise<void> { | 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; |         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> { | export async function getClassStudentsHandler(req: Request, res: Response): Promise<void> { | ||||||
|  |  | ||||||
|  | @ -15,9 +15,10 @@ router.get('/', getAllClassesHandler); | ||||||
| 
 | 
 | ||||||
| router.post('/', createClassHandler); | router.post('/', createClassHandler); | ||||||
| 
 | 
 | ||||||
| // Information about an class with id 'id'
 |  | ||||||
| router.get('/:id', getClassHandler); | router.get('/:id', getClassHandler); | ||||||
| 
 | 
 | ||||||
|  | router.delete('/:id', deleteClassHandler); | ||||||
|  | 
 | ||||||
| router.get('/:id/teacher-invitations', getTeacherInvitationsHandler); | router.get('/:id/teacher-invitations', getTeacherInvitationsHandler); | ||||||
| 
 | 
 | ||||||
| router.get('/:id/students', getClassStudentsHandler); | router.get('/:id/students', getClassStudentsHandler); | ||||||
|  |  | ||||||
|  | @ -64,6 +64,10 @@ export async function createClass(classData: ClassDTO): Promise<ClassDTO | null> | ||||||
| export async function deleteClass(classId: string): Promise<ClassDTO> { | export async function deleteClass(classId: string): Promise<ClassDTO> { | ||||||
|     const cls = await fetchClass(classId); |     const cls = await fetchClass(classId); | ||||||
| 
 | 
 | ||||||
|  |     if (!cls) { | ||||||
|  |         throw new NotFoundException('Could not delete class because it does not exist'); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     const classRepository = getClassRepository(); |     const classRepository = getClassRepository(); | ||||||
|     await classRepository.deleteById(classId); |     await classRepository.deleteById(classId); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Reference in a new issue
	
	 Adriaan Jacquet
						Adriaan Jacquet