Ajouter des fonctions pour créer et supprimer des vidéos dans videoManager et mettre à jour la route POST /videos pour utiliser ces nouvelles fonctions

This commit is contained in:
2025-02-12 10:17:08 +01:00
parent 78708e4eaa
commit 2766a1d788
2 changed files with 29 additions and 10 deletions

View File

@@ -194,6 +194,13 @@ router.post('/videos', (req, res) => {
} }
console.log('Creating video with measurements:', parsedMeasurementIds); 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 } }); 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)) { if (!videoId || isNaN(videoId)) {
return res.status(400).json({ error: 'Invalid video ID' }); return res.status(400).json({ error: 'Invalid video ID' });
} }
const query = 'DELETE FROM public.videos WHERE id = $1 RETURNING id'; videoManager.deleteVideoProject(videoId).then(() => {
db.query(query, [videoId], (err, results) => { res.json({ message: 'Vidéo supprimée avec succès' });
if (err) { }).catch(err => {
serverError.sendError('Erreur lors de la suppression de la vidéo:', res, 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 });
}); });
}); });

View File

@@ -9,6 +9,23 @@ const measureManager = require('../measure/measureManager');
const PROJECTS_DIR = path.join('.'); 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) { async function createVideoWithList(projectId, pathList) {
//pathList étant la liste des chemins déjà triés //pathList étant la liste des chemins déjà triés
const tempFile = path.join('temp.txt'); const tempFile = path.join('temp.txt');
@@ -108,4 +125,4 @@ async function createVideo(projectId) {
} }
} }
module.exports = { createVideo, createVideoWithList }; module.exports = { createVideo, createVideoWithList, createVideoProject, deleteVideoProject };