// routes/api.js const express = require('express'); const router = express.Router(); const db = require('../db'); // Assurez-vous d'importer le fichier db.js /** * @swagger * /itemsdb: * get: * description: Use to request all items from the database * responses: * 200: * description: A successful response * 500: * description: Internal server error */ router.get('/itemsdb', (req, res) => { const query = 'SELECT * FROM data.projets'; db.query(query, (err, results) => { if (err) { console.error('Erreur lors de la récupération des projets:', err); return res.status(500).json({ error: 'Erreur serveur' }); } res.json(results); }); }); /** * @swagger * /items: * get: * description: Use to request all items * responses: * 200: * description: A successful response */ router.get('/items', (req, res) => { res.json([{ id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }]); }); /** * @swagger * /items_recever: * post: * description: Use to receive items * responses: * 200: * description: A successful response */ router.post('/items_recever', (req, res) => { console.log(req.body); }); /** * @swagger * /items/{id}: * get: * description: Use to request a specific item by id * parameters: * - in: path * name: id * required: true * description: Numeric ID of the item to retrieve. * schema: * type: integer * responses: * 200: * description: A successful response */ router.get('/items/:id', (req, res) => { const itemId = req.params.id; res.json({ id: itemId, name: `Item ${itemId}` }); }); /** * @swagger * /items: * post: * description: Use to create a new item * responses: * 200: * description: A successful response */ router.post('/items', (req, res) => { const newItem = req.body; res.json({ message: 'Nouvel élément créé', data: newItem }); }); /** * @swagger * /items/{id}: * put: * description: Use to update a specific item by id * parameters: * - in: path * name: id * required: true * description: Numeric ID of the item to update. * schema: * type: integer * responses: * 200: * description: A successful response */ router.put('/items/:id', (req, res) => { const itemId = req.params.id; const updatedItem = req.body; res.json({ message: `Élément avec l'ID ${itemId} mis à jour`, data: updatedItem }); }); /** * @swagger * /items/{id}: * delete: * description: Use to delete a specific item by id * parameters: * - in: path * name: id * required: true * description: Numeric ID of the item to delete. * schema: * type: integer * responses: * 200: * description: A successful response */ router.delete('/items/:id', (req, res) => { const itemId = req.params.id; res.json({ message: `Élément avec l'ID ${itemId} supprimé` }); }); /** * @swagger * /projets: * post: * description: Use to add a new project with a name and id * responses: * 201: * description: Project added successfully * 500: * description: Internal server error */ router.post('/projets', (req, res) => { // Requête d'insertion const query = 'INSERT INTO data.projets (name, id) VALUES ($1, $2) RETURNING id'; db.query(query, [req.body.name, req.body.id], (err, results) => { if (err) { console.error('Erreur lors de l\'ajout du projet:', err); return res.status(500).json({ error: 'Erreur serveur' }); } res.status(201).json({ message: 'Projet ajouté avec succès', id: results.rows[0].id }); }); }); /** * @swagger * /delete: * post: * description: Use to delete a project by ID * responses: * 200: * description: Project deleted successfully * 404: * description: No project found with this ID * 500: * description: Internal server error */ router.post('/delete', (req, res) => { console.log("On entre dans la méthode") console.log(req.body.id) const id = req.body.id // Requête de suppression const query = 'DELETE FROM data.projets WHERE id = $1 RETURNING id'; db.query(query, [req.body.id], (err, results) => { if (err) { console.error('Erreur lors de la suppression du projet:', err); return res.status(500).json({ error: 'Erreur serveur' }); } if (results.rowCount === 0) { return res.status(404).json({ error: 'Aucun projet trouvé avec cet ID.' }); } res.status(200).json({ message: 'Projet supprimé avec succès', id }); }); }); module.exports = router;