From 605037d30571f41c1fb0605397f95fe91a11047f Mon Sep 17 00:00:00 2001 From: Kerboul Date: Wed, 8 Jan 2025 16:15:54 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20d'une=20route=20API=20pour=20r=C3=A9cup?= =?UTF-8?q?=C3=A9rer=20toutes=20les=20mesures=20d'un=20projet=20avec=20ges?= =?UTF-8?q?tion=20des=20erreurs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routes/api.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/routes/api.js b/routes/api.js index 0a88561..6e7ee04 100644 --- a/routes/api.js +++ b/routes/api.js @@ -97,6 +97,39 @@ router.get('/projects/:id/videos', (req, res) => { }); }); +/** + * @swagger + * /projects/{id}/measurements: + * get: + * description: Use to request all measurements for a specific project by project id + * parameters: + * - in: path + * name: id + * required: true + * description: Numeric ID of the project to retrieve measurements for. + * schema: + * type: integer + * responses: + * 200: + * description: A successful response + * 500: + * description: Internal server error + */ +router.get('/projects/:id/measurements', (req, res) => { + const projectId = req.params.id; + const query = 'SELECT * FROM public.measurements WHERE project_id = $1'; + res.setHeader('Access-Control-Allow-Origin', 'http://localhost:5500'); + res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE'); + res.setHeader('Access-Control-Allow-Headers', 'Content-Type'); + db.query(query, [projectId], (err, results) => { + if (err) { + console.error('Erreur lors de la récupération des mesures pour le projet:', err); + return res.status(500).json({ error: 'Erreur serveur' }); + } + res.json(results.rows); + }); +}); + /** * @swagger * /projects: