modfi
This commit is contained in:
parent
8da10094ad
commit
2a264fb6a5
5 changed files with 42 additions and 12 deletions
6
app.js
6
app.js
|
|
@ -3,9 +3,15 @@ const express = require('express');
|
||||||
const app = express();
|
const app = express();
|
||||||
const swaggerUi = require('swagger-ui-express');
|
const swaggerUi = require('swagger-ui-express');
|
||||||
const swaggerSpec = require('./swagger');
|
const swaggerSpec = require('./swagger');
|
||||||
|
const cors = require('cors');
|
||||||
const db = require('./config/db');
|
const db = require('./config/db');
|
||||||
|
|
||||||
// Middlewares
|
// Middlewares
|
||||||
|
app.use(cors({
|
||||||
|
origin: '*',
|
||||||
|
methods: ["GET", "POST", "PUT", "DELETE"],
|
||||||
|
credentials: true,
|
||||||
|
}));
|
||||||
app.use(express.json());
|
app.use(express.json());
|
||||||
|
|
||||||
// Swagger
|
// Swagger
|
||||||
|
|
|
||||||
|
|
@ -1,30 +1,30 @@
|
||||||
const db = require('../config/db');
|
const db = require('../config/db');
|
||||||
|
|
||||||
exports.getAllGroups = async (req, res) => {
|
exports.getAllGroups = async (req, res) => {
|
||||||
const [rows] = await db.query('SELECT * FROM groups');
|
const [rows] = await db.query('SELECT * FROM `groups`');
|
||||||
res.json(rows);
|
res.json(rows);
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.getGroupById = async (req, res) => {
|
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' });
|
if (rows.length === 0) return res.status(404).json({ error: 'Group not found' });
|
||||||
res.json(rows[0]);
|
res.json(rows[0]);
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.createGroup = async (req, res) => {
|
exports.createGroup = async (req, res) => {
|
||||||
const { name } = req.body;
|
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' });
|
res.status(201).json({ message: 'Group created' });
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.updateGroup = async (req, res) => {
|
exports.updateGroup = async (req, res) => {
|
||||||
const { name } = req.body;
|
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' });
|
res.json({ message: 'Group updated' });
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.deleteGroup = async (req, res) => {
|
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();
|
res.status(204).send();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -39,7 +39,7 @@ exports.getGroupUsers = async (req, res) => {
|
||||||
|
|
||||||
exports.getGroupCours = async (req, res) => {
|
exports.getGroupCours = async (req, res) => {
|
||||||
const [rows] = await db.query(`
|
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
|
JOIN group_cours gc ON gc.cours_id = c.id
|
||||||
WHERE gc.group_id = ?
|
WHERE gc.group_id = ?
|
||||||
`, [req.params.id]);
|
`, [req.params.id]);
|
||||||
|
|
@ -64,6 +64,6 @@ exports.removeUserFromGroup = async (req, res) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.removeCoursFromGroup = 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();
|
res.status(204).send();
|
||||||
};
|
};
|
||||||
|
|
|
||||||
23
package-lock.json
generated
23
package-lock.json
generated
|
|
@ -9,6 +9,7 @@
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"cors": "^2.8.5",
|
||||||
"dotenv": "^17.1.0",
|
"dotenv": "^17.1.0",
|
||||||
"express": "^5.1.0",
|
"express": "^5.1.0",
|
||||||
"mysql2": "^3.14.1",
|
"mysql2": "^3.14.1",
|
||||||
|
|
@ -241,6 +242,19 @@
|
||||||
"node": ">=6.6.0"
|
"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": {
|
"node_modules/debug": {
|
||||||
"version": "4.4.1",
|
"version": "4.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
|
||||||
|
|
@ -825,6 +839,15 @@
|
||||||
"node": ">= 0.6"
|
"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": {
|
"node_modules/object-inspect": {
|
||||||
"version": "1.13.4",
|
"version": "1.13.4",
|
||||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
|
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"cors": "^2.8.5",
|
||||||
"dotenv": "^17.1.0",
|
"dotenv": "^17.1.0",
|
||||||
"express": "^5.1.0",
|
"express": "^5.1.0",
|
||||||
"mysql2": "^3.14.1",
|
"mysql2": "^3.14.1",
|
||||||
|
|
|
||||||
|
|
@ -170,7 +170,7 @@ router.post('/:id/users', groupController.addUserToGroup);
|
||||||
* schema:
|
* schema:
|
||||||
* type: object
|
* type: object
|
||||||
* properties:
|
* properties:
|
||||||
* courseId: { type: integer }
|
* coursId: { type: integer }
|
||||||
* responses:
|
* responses:
|
||||||
* 200:
|
* 200:
|
||||||
* description: Cours added to group
|
* description: Cours added to group
|
||||||
|
|
@ -200,9 +200,9 @@ router.delete('/:id/users/:userId', groupController.removeUserFromGroup);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @swagger
|
* @swagger
|
||||||
* /groups/{id}/cours/{courseId}:
|
* /groups/{id}/cours/{coursId}:
|
||||||
* delete:
|
* delete:
|
||||||
* summary: Remove a course from a group
|
* summary: Remove a cours from a group
|
||||||
* tags: [Groups]
|
* tags: [Groups]
|
||||||
* parameters:
|
* parameters:
|
||||||
* - in: path
|
* - in: path
|
||||||
|
|
@ -210,13 +210,13 @@ router.delete('/:id/users/:userId', groupController.removeUserFromGroup);
|
||||||
* required: true
|
* required: true
|
||||||
* schema: { type: integer }
|
* schema: { type: integer }
|
||||||
* - in: path
|
* - in: path
|
||||||
* name: courseId
|
* name: coursId
|
||||||
* required: true
|
* required: true
|
||||||
* schema: { type: integer }
|
* schema: { type: integer }
|
||||||
* responses:
|
* responses:
|
||||||
* 204:
|
* 204:
|
||||||
* description: Removed
|
* description: Removed
|
||||||
*/
|
*/
|
||||||
router.delete('/:id/cours/:courseId', groupController.removeCoursFromGroup);
|
router.delete('/:id/cours/:coursId', groupController.removeCoursFromGroup);
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue