diff --git a/routes/videoRoutes.js b/routes/videoRoutes.js index c7dbe4e..f6d9ac3 100644 --- a/routes/videoRoutes.js +++ b/routes/videoRoutes.js @@ -194,6 +194,13 @@ router.post('/videos', (req, res) => { } console.log('Creating video with measurements:', parsedMeasurementIds); + + videoManager.createVideo(project_id, parsedMeasurementIds, name, resolution, duration).then(video => { + res.json({ message: 'Vidéo créée avec succès', video }); + }).catch(err => { + serverError.sendError('Erreur lors de la création de la vidéo:', res, err); + }); + res.json({ message: 'Vidéo créée avec succès (simulation)', video: { project_id, measurement_ids: parsedMeasurementIds, name, resolution, duration } }); }); @@ -226,15 +233,10 @@ router.delete('/videos/:id', (req, res) => { if (!videoId || isNaN(videoId)) { return res.status(400).json({ error: 'Invalid video ID' }); } - const query = 'DELETE FROM public.videos WHERE id = $1 RETURNING id'; - db.query(query, [videoId], (err, results) => { - if (err) { - serverError.sendError('Erreur lors de la suppression de la vidéo:', res, err); - } - if (results.rowCount === 0) { - return res.status(404).json({ error: 'Aucune vidéo trouvée avec cet ID.' }); - } - res.status(200).json({ message: 'Vidéo supprimée avec succès', id: videoId }); + videoManager.deleteVideoProject(videoId).then(() => { + res.json({ message: 'Vidéo supprimée avec succès' }); + }).catch(err => { + serverError.sendError('Erreur lors de la suppression de la vidéo:', res, err); }); }); diff --git a/src/video/videoManager.js b/src/video/videoManager.js index 8a6e7a6..90ed916 100644 --- a/src/video/videoManager.js +++ b/src/video/videoManager.js @@ -9,6 +9,23 @@ const measureManager = require('../measure/measureManager'); const PROJECTS_DIR = path.join('.'); +async function createVideoProject(projectId, parsedMeasurementIds, name, resolution, duration) { + // insérer une nouvelle vidéo dans la base de données + const query = 'INSERT INTO public.videos (project_id, measurement_ids, name, resolution, duration) VALUES ($1, $2, $3, $4, $5) RETURNING *'; + const values = [projectId, parsedMeasurementIds, name, resolution, duration]; + const res = await db.query(query, values); + console.log('New video created:', res.rows[0]); + return res.rows[0]; +} + +async function deleteVideoProject(videoId) { + const query = 'DELETE FROM public.videos WHERE id = $1'; + const values = [videoId]; + const res = await db.query(query, values); + console.log('Video deleted:', res.rows[0]); + return res.rows[0]; +} + async function createVideoWithList(projectId, pathList) { //pathList étant la liste des chemins déjà triés const tempFile = path.join('temp.txt'); @@ -108,4 +125,4 @@ async function createVideo(projectId) { } } -module.exports = { createVideo, createVideoWithList }; +module.exports = { createVideo, createVideoWithList, createVideoProject, deleteVideoProject };