diff --git a/app.js b/app.js index f56bf57..f62da7c 100644 --- a/app.js +++ b/app.js @@ -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 diff --git a/controllers/groupController.js b/controllers/groupController.js index 18fd4f0..62e0dff 100644 --- a/controllers/groupController.js +++ b/controllers/groupController.js @@ -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(); }; diff --git a/package-lock.json b/package-lock.json index 02f78ad..61fa6a7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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", diff --git a/package.json b/package.json index 110df30..3c57c64 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/routes/groups.js b/routes/groups.js index dd6085c..b81fd31 100644 --- a/routes/groups.js +++ b/routes/groups.js @@ -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;