Refactor la route de rendu vidéo pour utiliser async/await et améliorer la gestion des erreurs

This commit is contained in:
2025-02-12 11:35:33 +01:00
parent aa571e5149
commit f99b0c60ce

View File

@@ -301,39 +301,40 @@ router.get('/videos/file/:video_id', (req, res) => {
* 500: * 500:
* description: Server error * description: Server error
*/ */
router.post('/videos/render/:video_id', (req, res) => { router.post('/videos/render/:video_id', async (req, res) => {
const videoId = req.params.video_id; const videoId = req.params.video_id;
const query = 'SELECT measurement_ids, project_id FROM public.videos WHERE id = $1'; const query = 'SELECT measurement_ids, project_id FROM public.videos WHERE id = $1';
db.query(query, [videoId], (err, results) => {
db.query(query, [videoId], async (err, results) => {
if (err) { if (err) {
return serverError.sendError('Error getting video:', res, err); return serverError.sendError('Error getting video:', res, err);
} }
if (results.rows.length === 0) { if (results.rows.length === 0) {
return res.status(404).json({ error: 'Video not found' }); return res.status(404).json({ error: 'Video not found' });
} }
const measurementIds = results.rows[0].measurement_ids; const measurementIds = results.rows[0].measurement_ids;
const project_id = results.rows[0].project_id; const project_id = results.rows[0].project_id;
console.log('Measurement IDs:', measurementIds); console.log('Measurement IDs:', measurementIds);
console.log('Project ID:', project_id); console.log('Project ID:', project_id);
const pathList = measureManager.getPathList(measurementIds, project_id).then(pathList => {
console.log('Path list:', pathList);
res.json({ message: 'Render process started' });
const videoFile = videoManager.createVideoWithList(project_id, pathList);
console.log('Video file:', videoFile);
try { try {
videoManager.updateVideoFile(videoId, videoFile); const pathList = await measureManager.getPathList(measurementIds, project_id);
console.log('Path list:', pathList);
res.json({ message: 'Render process started' });
const videoFile = await videoManager.createVideoWithList(project_id, pathList);
console.log('Video file:', videoFile);
await videoManager.updateVideoFile(videoId, videoFile);
} catch (err) { } catch (err) {
console.error('Error updating video file:', err); console.error('Error during video rendering:', err);
res.status(500).json({ error: 'Error updating video file' }); res.status(500).json({ error: 'Error during video rendering' });
} }
}).catch(err => {
console.error('Error getting path list:', err);
res.status(500).json({ error: 'Error getting path list' });
});
}); });
}); });
/** /**
* @swagger * @swagger
* /cat: * /cat: