From 72e53e3c40b4c8484c3d07381114bb9494e7d736 Mon Sep 17 00:00:00 2001 From: Kerboul Date: Sun, 12 Jan 2025 15:11:56 +0000 Subject: [PATCH] =?UTF-8?q?Renommer=20l'endpoint=20pour=20cr=C3=A9er=20une?= =?UTF-8?q?=20vid=C3=A9o=20et=20ajouter=20des=20champs=20suppl=C3=A9mentai?= =?UTF-8?q?res=20dans=20la=20requ=C3=AAte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routes/api.js | 56 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 50 insertions(+), 6 deletions(-) diff --git a/routes/api.js b/routes/api.js index ae72c01..c35de15 100644 --- a/routes/api.js +++ b/routes/api.js @@ -363,18 +363,62 @@ router.get('/videos/:id', (req, res) => { /** * @swagger - * /videos: + * /createvideo: * post: - * description: Use to add a new video + * description: Use to create a new video + * requestBody: + * required: true + * content: + * application/json: + * schema: + * type: object + * properties: + * project_id: + * type: integer + * measurement_ids: + * type: string + * video_path: + * type: string + * duration: + * type: number + * resolution: + * type: string + * name: + * type: string * responses: * 201: - * description: Video added successfully + * description: Video created successfully * 500: * description: Internal server error */ -router.post('/videos', (req, res) => { - const query = 'INSERT INTO public.videos (project_id, measurement_ids, video_path, start_timestamp, end_timestamp, image_count, resolution, duration, fps, status) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) RETURNING id'; - db.query(query, [req.body.project_id, req.body.measurement_ids, req.body.video_path, req.body.start_timestamp, req.body.end_timestamp, req.body.image_count, req.body.resolution, req.body.duration, req.body.fps, req.body.status], (err, results) => { +router.post('/createvideo', (req, res) => { + const query = 'INSERT INTO public.videos (project_id, measurement_ids, video_path, start_timestamp, end_timestamp, image_count, resolution, duration, fps, status, name) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) RETURNING id'; + + list_ids = req.body.measurement_ids.split(','); + + image_count = list_ids.length; + + const query_first = 'SELECT timestamp FROM public.measurements WHERE id = $1'; + const query_last = 'SELECT timestamp FROM public.measurements WHERE id = $1'; + db.query(query_first, [list_ids[0]], (err, results) => { + if (err) { + console.error('Erreur lors de la récupération du timestamp de la première image:', err); + return res.status(500).json({ error: 'Erreur serveur' }); + } + start_timestamp = results.rows[0].timestamp; + }); + db.query(query_last, [list_ids[image_count - 1]], (err, results) => { + if (err) { + console.error('Erreur lors de la récupération du timestamp de la dernière image:', err); + return res.status(500).json({ error: 'Erreur serveur' }); + } + end_timestamp = results.rows[0].timestamp; + }); + + // déduire du nombre d'images le nombre d'images par seconde via la duration qui sera précisée + fps = image_count / req.body.duration; + + db.query(query, [req.body.project_id, req.body.measurement_ids, req.body.video_path, start_timestamp, end_timestamp, image_count, req.body.resolution, req.body.duration, fps, 0, req.body.name], (err, results) => { if (err) { console.error('Erreur lors de l\'ajout de la vidéo:', err); return res.status(500).json({ error: 'Erreur serveur' });