Modifier la route POST /videos pour simplifier la validation des champs et mettre à jour la documentation Swagger

This commit is contained in:
2025-02-12 09:12:11 +01:00
parent 6ee50ee7b4
commit 2a24864003

View File

@@ -122,75 +122,21 @@ router.get('/videos/:id', (req, res) => {
}); });
/** /**
* @swagger * project_id: integer
* /videos: * measurement_id: liste de integers
* post: * name_video: string
* summary: Ajouter une nouvelle vidéo * resolution: string
* description: Ajoute une nouvelle vidéo à la base de données. * duration: integer
* 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: Vidéo ajoutée avec succès.
* 400:
* description: Tous les champs sont requis.
* 500:
* description: Erreur serveur.
*/ */
router.post('/videos', (req, res) => { router.post('/videos', (req, res) => {
const { project_id, measurement_ids, video_path, duration, resolution, name } = req.body; const { project_id, measurement_ids, name, resolution, duration } = req.body;
if (!project_id || !measurement_ids || !video_path || !duration || !resolution || !name) { if (!project_id || !measurement_ids || !name || !resolution || !duration) {
return res.status(400).json({ error: 'All fields are required' }); return res.status(400).json({ error: 'Tous les champs sont requis.' });
} }
console.log('Creating video with:', { project_id, measurement_ids, name, resolution, duration });
const list_ids = measurement_ids.split(','); res.json({ message: 'Vidéo créée avec succès (simulation)', video: { project_id, measurement_ids, name, resolution, duration } });
const image_count = list_ids.length;
const videoPath = '/videos/' + name + '.mp4';
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) {
serverError.sendError('Erreur lors de la récupération du timestamp de la première image:', res, err);
}
const start_timestamp = results.rows[0].timestamp;
db.query(query_last, [list_ids[image_count - 1]], (err, results) => {
if (err) {
serverError.sendError('Erreur lors de la récupération du timestamp de la dernière image:', res, err);
}
const end_timestamp = results.rows[0].timestamp;
const fps = image_count / duration;
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, $11) RETURNING id';
db.query(query, [project_id, measurement_ids, videoPath, start_timestamp, end_timestamp, image_count, resolution, duration, fps, 0, name], (err, results) => {
if (err) {
serverError.sendError('Erreur lors de l\'ajout de la vidéo:', res, err);
}
res.status(201).json({ message: 'Vidéo ajoutée avec succès', id: results.rows[0].id });
});
});
});
}); });
/** /**
* @swagger * @swagger
* /videos/{id}: * /videos/{id}: