222 lines
4.8 KiB
JavaScript
222 lines
4.8 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const groupController = require('../controllers/groupController');
|
|
|
|
/**
|
|
* @swagger
|
|
* /groups:
|
|
* get:
|
|
* summary: Get all groups
|
|
* tags: [Groups]
|
|
* responses:
|
|
* 200:
|
|
* description: List of groups
|
|
*/
|
|
router.get('/', groupController.getAllGroups);
|
|
|
|
/**
|
|
* @swagger
|
|
* /groups/{id}:
|
|
* get:
|
|
* summary: Get group by ID
|
|
* tags: [Groups]
|
|
* parameters:
|
|
* - in: path
|
|
* name: id
|
|
* required: true
|
|
* schema: { type: integer }
|
|
* responses:
|
|
* 200:
|
|
* description: Group found
|
|
*/
|
|
router.get('/:id', groupController.getGroupById);
|
|
|
|
/**
|
|
* @swagger
|
|
* /groups:
|
|
* post:
|
|
* summary: Create a new group
|
|
* tags: [Groups]
|
|
* requestBody:
|
|
* required: true
|
|
* content:
|
|
* application/json:
|
|
* schema:
|
|
* type: object
|
|
* properties:
|
|
* name: { type: string }
|
|
* responses:
|
|
* 201:
|
|
* description: Group created
|
|
*/
|
|
router.post('/', groupController.createGroup);
|
|
|
|
/**
|
|
* @swagger
|
|
* /groups/{id}:
|
|
* put:
|
|
* summary: Update a group
|
|
* tags: [Groups]
|
|
* parameters:
|
|
* - in: path
|
|
* name: id
|
|
* schema: { type: integer }
|
|
* required: true
|
|
* requestBody:
|
|
* required: true
|
|
* content:
|
|
* application/json:
|
|
* schema:
|
|
* type: object
|
|
* properties:
|
|
* name: { type: string }
|
|
* responses:
|
|
* 200:
|
|
* description: Group updated
|
|
*/
|
|
router.put('/:id', groupController.updateGroup);
|
|
|
|
/**
|
|
* @swagger
|
|
* /groups/{id}:
|
|
* delete:
|
|
* summary: Delete a group
|
|
* tags: [Groups]
|
|
* parameters:
|
|
* - in: path
|
|
* name: id
|
|
* required: true
|
|
* schema: { type: integer }
|
|
* responses:
|
|
* 204:
|
|
* description: Deleted
|
|
*/
|
|
router.delete('/:id', groupController.deleteGroup);
|
|
|
|
/**
|
|
* @swagger
|
|
* /groups/{id}/users:
|
|
* get:
|
|
* summary: Get all users in a group
|
|
* tags: [Groups]
|
|
* parameters:
|
|
* - in: path
|
|
* name: id
|
|
* required: true
|
|
* schema: { type: integer }
|
|
* responses:
|
|
* 200:
|
|
* description: Users found
|
|
*/
|
|
router.get('/:id/users', groupController.getGroupUsers);
|
|
|
|
/**
|
|
* @swagger
|
|
* /groups/{id}/cours:
|
|
* get:
|
|
* summary: Get all cours in a group
|
|
* tags: [Groups]
|
|
* parameters:
|
|
* - in: path
|
|
* name: id
|
|
* required: true
|
|
* schema: { type: integer }
|
|
* responses:
|
|
* 200:
|
|
* description: Cours found
|
|
*/
|
|
router.get('/:id/cours', groupController.getGroupCours);
|
|
|
|
/**
|
|
* @swagger
|
|
* /groups/{id}/users:
|
|
* post:
|
|
* summary: Add a user to a group
|
|
* tags: [Groups]
|
|
* parameters:
|
|
* - in: path
|
|
* name: id
|
|
* required: true
|
|
* schema: { type: integer }
|
|
* requestBody:
|
|
* required: true
|
|
* content:
|
|
* application/json:
|
|
* schema:
|
|
* type: object
|
|
* properties:
|
|
* userId: { type: integer }
|
|
* responses:
|
|
* 200:
|
|
* description: User added to group
|
|
*/
|
|
router.post('/:id/users', groupController.addUserToGroup);
|
|
|
|
/**
|
|
* @swagger
|
|
* /groups/{id}/cours:
|
|
* post:
|
|
* summary: Add a cours to a group
|
|
* tags: [Groups]
|
|
* parameters:
|
|
* - in: path
|
|
* name: id
|
|
* required: true
|
|
* schema: { type: integer }
|
|
* requestBody:
|
|
* required: true
|
|
* content:
|
|
* application/json:
|
|
* schema:
|
|
* type: object
|
|
* properties:
|
|
* coursId: { type: integer }
|
|
* responses:
|
|
* 200:
|
|
* description: Cours added to group
|
|
*/
|
|
router.post('/:id/cours', groupController.addCoursToGroup);
|
|
|
|
/**
|
|
* @swagger
|
|
* /groups/{id}/users/{userId}:
|
|
* delete:
|
|
* summary: Remove a user from a group
|
|
* tags: [Groups]
|
|
* parameters:
|
|
* - in: path
|
|
* name: id
|
|
* required: true
|
|
* schema: { type: integer }
|
|
* - in: path
|
|
* name: userId
|
|
* required: true
|
|
* schema: { type: integer }
|
|
* responses:
|
|
* 204:
|
|
* description: Removed
|
|
*/
|
|
router.delete('/:id/users/:userId', groupController.removeUserFromGroup);
|
|
|
|
/**
|
|
* @swagger
|
|
* /groups/{id}/cours/{coursId}:
|
|
* delete:
|
|
* summary: Remove a cours from a group
|
|
* tags: [Groups]
|
|
* parameters:
|
|
* - in: path
|
|
* name: id
|
|
* required: true
|
|
* schema: { type: integer }
|
|
* - in: path
|
|
* name: coursId
|
|
* required: true
|
|
* schema: { type: integer }
|
|
* responses:
|
|
* 204:
|
|
* description: Removed
|
|
*/
|
|
router.delete('/:id/cours/:coursId', groupController.removeCoursFromGroup);
|
|
|
|
module.exports = router;
|