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
* /videos:
* post:
* summary: Ajouter une nouvelle vidéo
* description: Ajoute une nouvelle vidéo à la base de données.
* 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.
* project_id: integer
* measurement_id: liste de integers
* name_video: string
* resolution: string
* duration: integer
*
*/
router.post('/videos', (req, res) => {
const { project_id, measurement_ids, video_path, duration, resolution, name } = req.body;
if (!project_id || !measurement_ids || !video_path || !duration || !resolution || !name) {
return res.status(400).json({ error: 'All fields are required' });
const { project_id, measurement_ids, name, resolution, duration } = req.body;
if (!project_id || !measurement_ids || !name || !resolution || !duration) {
return res.status(400).json({ error: 'Tous les champs sont requis.' });
}
const list_ids = measurement_ids.split(',');
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 });
console.log('Creating video with:', { project_id, measurement_ids, name, resolution, duration });
res.json({ message: 'Vidéo créée avec succès (simulation)', video: { project_id, measurement_ids, name, resolution, duration } });
});
});
});
});
/**
* @swagger
* /videos/{id}: