Renommer l'endpoint pour créer une vidéo et ajouter des champs supplémentaires dans la requête
This commit is contained in:
@@ -363,18 +363,62 @@ router.get('/videos/:id', (req, res) => {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @swagger
|
* @swagger
|
||||||
* /videos:
|
* /createvideo:
|
||||||
* post:
|
* 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:
|
* responses:
|
||||||
* 201:
|
* 201:
|
||||||
* description: Video added successfully
|
* description: Video created successfully
|
||||||
* 500:
|
* 500:
|
||||||
* description: Internal server error
|
* description: Internal server error
|
||||||
*/
|
*/
|
||||||
router.post('/videos', (req, res) => {
|
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) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) RETURNING id';
|
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';
|
||||||
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) => {
|
|
||||||
|
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) {
|
if (err) {
|
||||||
console.error('Erreur lors de l\'ajout de la vidéo:', err);
|
console.error('Erreur lors de l\'ajout de la vidéo:', err);
|
||||||
return res.status(500).json({ error: 'Erreur serveur' });
|
return res.status(500).json({ error: 'Erreur serveur' });
|
||||||
|
|||||||
Reference in New Issue
Block a user