This commit is contained in:
ExostFlash 2025-07-11 17:13:35 +02:00
parent 8da10094ad
commit 2a264fb6a5
5 changed files with 42 additions and 12 deletions

6
app.js
View file

@ -3,9 +3,15 @@ const express = require('express');
const app = express();
const swaggerUi = require('swagger-ui-express');
const swaggerSpec = require('./swagger');
const cors = require('cors');
const db = require('./config/db');
// Middlewares
app.use(cors({
origin: '*',
methods: ["GET", "POST", "PUT", "DELETE"],
credentials: true,
}));
app.use(express.json());
// Swagger

View file

@ -1,30 +1,30 @@
const db = require('../config/db');
exports.getAllGroups = async (req, res) => {
const [rows] = await db.query('SELECT * FROM groups');
const [rows] = await db.query('SELECT * FROM `groups`');
res.json(rows);
};
exports.getGroupById = async (req, res) => {
const [rows] = await db.query('SELECT * FROM groups WHERE id = ?', [req.params.id]);
const [rows] = await db.query('SELECT * FROM `groups` WHERE id = ?', [req.params.id]);
if (rows.length === 0) return res.status(404).json({ error: 'Group not found' });
res.json(rows[0]);
};
exports.createGroup = async (req, res) => {
const { name } = req.body;
await db.query('INSERT INTO groups (name) VALUES (?)', [name]);
await db.query('INSERT INTO `groups` (name) VALUES (?)', [name]);
res.status(201).json({ message: 'Group created' });
};
exports.updateGroup = async (req, res) => {
const { name } = req.body;
await db.query('UPDATE groups SET name = ? WHERE id = ?', [name, req.params.id]);
await db.query('UPDATE `groups` SET name = ? WHERE id = ?', [name, req.params.id]);
res.json({ message: 'Group updated' });
};
exports.deleteGroup = async (req, res) => {
await db.query('DELETE FROM groups WHERE id = ?', [req.params.id]);
await db.query('DELETE FROM `groups` WHERE id = ?', [req.params.id]);
res.status(204).send();
};
@ -39,7 +39,7 @@ exports.getGroupUsers = async (req, res) => {
exports.getGroupCours = async (req, res) => {
const [rows] = await db.query(`
SELECT c.* FROM courses c
SELECT c.* FROM cours c
JOIN group_cours gc ON gc.cours_id = c.id
WHERE gc.group_id = ?
`, [req.params.id]);
@ -64,6 +64,6 @@ exports.removeUserFromGroup = async (req, res) => {
};
exports.removeCoursFromGroup = async (req, res) => {
await db.query('DELETE FROM group_courses WHERE group_id = ? AND course_id = ?', [req.params.id, req.params.courseId]);
await db.query('DELETE FROM group_cours WHERE group_id = ? AND cours_id = ?', [req.params.id, req.params.coursId]);
res.status(204).send();
};

23
package-lock.json generated
View file

@ -9,6 +9,7 @@
"version": "1.0.0",
"license": "ISC",
"dependencies": {
"cors": "^2.8.5",
"dotenv": "^17.1.0",
"express": "^5.1.0",
"mysql2": "^3.14.1",
@ -241,6 +242,19 @@
"node": ">=6.6.0"
}
},
"node_modules/cors": {
"version": "2.8.5",
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
"integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
"license": "MIT",
"dependencies": {
"object-assign": "^4",
"vary": "^1"
},
"engines": {
"node": ">= 0.10"
}
},
"node_modules/debug": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
@ -825,6 +839,15 @@
"node": ">= 0.6"
}
},
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/object-inspect": {
"version": "1.13.4",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",

View file

@ -14,6 +14,7 @@
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"cors": "^2.8.5",
"dotenv": "^17.1.0",
"express": "^5.1.0",
"mysql2": "^3.14.1",

View file

@ -170,7 +170,7 @@ router.post('/:id/users', groupController.addUserToGroup);
* schema:
* type: object
* properties:
* courseId: { type: integer }
* coursId: { type: integer }
* responses:
* 200:
* description: Cours added to group
@ -200,9 +200,9 @@ router.delete('/:id/users/:userId', groupController.removeUserFromGroup);
/**
* @swagger
* /groups/{id}/cours/{courseId}:
* /groups/{id}/cours/{coursId}:
* delete:
* summary: Remove a course from a group
* summary: Remove a cours from a group
* tags: [Groups]
* parameters:
* - in: path
@ -210,13 +210,13 @@ router.delete('/:id/users/:userId', groupController.removeUserFromGroup);
* required: true
* schema: { type: integer }
* - in: path
* name: courseId
* name: coursId
* required: true
* schema: { type: integer }
* responses:
* 204:
* description: Removed
*/
router.delete('/:id/cours/:courseId', groupController.removeCoursFromGroup);
router.delete('/:id/cours/:coursId', groupController.removeCoursFromGroup);
module.exports = router;