const express = require('express'); const router = express.Router(); const userController = require('../controllers/userController'); /** * @swagger * /users: * get: * summary: Get all users * tags: [Users] * responses: * 200: * description: List of users */ router.get('/', userController.getAllUsers); /** * @swagger * /users/{id}: * get: * summary: Get user by ID * tags: [Users] * parameters: * - in: path * name: id * schema: { type: integer } * required: true * responses: * 200: * description: User found */ router.get('/:id', userController.getUserById); /** * @swagger * /users: * post: * summary: Create a new user * tags: [Users] * requestBody: * required: true * content: * application/json: * schema: * type: object * properties: * first_name: { type: string } * last_name: { type: string } * email: { type: string } * password_hash: { type: string } * role: { type: string, enum: [student, admin] } * responses: * 201: * description: User created */ router.post('/', userController.createUser); /** * @swagger * /users/{id}: * put: * summary: Update a user * tags: [Users] * parameters: * - in: path * name: id * schema: { type: integer } * required: true * requestBody: * required: true * content: * application/json: * schema: * type: object * properties: * first_name: { type: string } * last_name: { type: string } * email: { type: string } * password_hash: { type: string } * role: { type: string } * responses: * 200: * description: User updated */ router.put('/:id', userController.updateUser); /** * @swagger * /users/{id}: * delete: * summary: Delete a user * tags: [Users] * parameters: * - in: path * name: id * schema: { type: integer } * required: true * responses: * 204: * description: Deleted */ router.delete('/:id', userController.deleteUser); /** * @swagger * /users/{id}/groups: * get: * summary: Get all groups for a user * tags: [Users] * parameters: * - in: path * name: id * schema: { type: integer } * required: true * responses: * 200: * description: Groups list */ router.get('/:id/groups', userController.getUserGroups); /** * @swagger * /users/{id}/cours: * get: * summary: Get all cours for a user * tags: [Users] * parameters: * - in: path * name: id * schema: { type: integer } * required: true * responses: * 200: * description: Cours list */ router.get('/:id/cours', userController.getUserCours); module.exports = router;