diff --git a/routes/cameraRoutes.js b/routes/cameraRoutes.js index 085fb59..9ff4836 100644 --- a/routes/cameraRoutes.js +++ b/routes/cameraRoutes.js @@ -31,7 +31,7 @@ router.post('/procedure/start/', async (req, res) => { const result = startProcedure(projectId, interval); res.status(200).json(result); } catch (err) { - serverError.sendError('Erreur lors du démarrage de la procédure de capture:', res, err); + serverError.sendError('Erreur lors du démarrage de la procédure de capture:', res, err, 500); } }); @@ -101,7 +101,7 @@ router.post('/procedure/stop/', async (req, res) => { const result = stopProcedure(); res.status(200).json(result); } catch (err) { - serverError.sendError('Erreur lors de l\'arrêt de la procédure de capture:', res, err); + serverError.sendError('Erreur lors de l\'arrêt de la procédure de capture:', res, err, 500); } }); diff --git a/routes/imageRoutes.js b/routes/imageRoutes.js index 8643206..e4dec80 100644 --- a/routes/imageRoutes.js +++ b/routes/imageRoutes.js @@ -24,7 +24,7 @@ router.get('/images/:projectId/:orderId', (req, res) => { const query = 'SELECT path FROM public.measurements WHERE project_id = $1 AND order_id = $2'; db.query(query, [projectId, orderId], (err, results) => { if (err) { - return serverError.sendError('Error getting image:', res, err); + return serverError.sendError('Error getting image:', res, err, 500); } if (results.rows.length === 0) { return res.status(404).json({ error: 'Image not found' }); @@ -46,7 +46,7 @@ router.get('/images/:measurementId', (req, res) => { const query = 'SELECT path FROM public.measurements WHERE id = $1'; db.query(query, [measurementId], (err, results) => { if (err) { - return serverError.sendError('Error getting image:', res, err); + return serverError.sendError('Error getting image:', res, err, 500); } if (results.rows.length === 0) { return res.status(404).json({ error: 'Image not found' }); diff --git a/routes/measurementRoutes.js b/routes/measurementRoutes.js index 5d71187..06cb504 100644 --- a/routes/measurementRoutes.js +++ b/routes/measurementRoutes.js @@ -8,7 +8,7 @@ router.get('/measurements', (req, res) => { const query = 'SELECT * FROM public.measurements'; db.query(query, (err, results) => { if (err) { - serverError.sendError('Erreur lors de la récupération des mesures:', res, err); + serverError.sendError('Erreur lors de la récupération des mesures:', res, err, 500); } res.json(results.rows); }); @@ -22,7 +22,7 @@ router.get('/measurements/:id', (req, res) => { const query = 'SELECT * FROM public.measurements WHERE id = $1'; db.query(query, [measurementId], (err, results) => { if (err) { - serverError.sendError('Erreur lors de la récupération de la mesure:', res, err); + serverError.sendError('Erreur lors de la récupération de la mesure:', res, err, 500); } res.json(results.rows); }); @@ -38,7 +38,7 @@ router.get('/measurements/:projectId/:orderId', async (req, res) => { const measurement = await measureManager.getMeasurement(projectId, orderId); res.json(measurement); } catch (error) { - serverError.sendError('Error getting measurement:', res, error); + serverError.sendError('Error getting measurement:', res, error, 500); } }); @@ -50,7 +50,7 @@ router.post('/measurements', (req, res) => { const query = 'INSERT INTO public.measurements (project_id, timestamp, image_path, temperature, humidity) VALUES ($1, $2, $3, $4, $5) RETURNING id'; db.query(query, [project_id, timestamp, image_path, temperature, humidity], (err, results) => { if (err) { - serverError.sendError('Erreur lors de l\'ajout de la mesure:', res, err); + serverError.sendError('Erreur lors de l\'ajout de la mesure:', res, err, 500); } res.status(201).json({ message: 'Mesure ajoutée avec succès', id: results.rows[0].id }); }); @@ -65,7 +65,7 @@ router.delete('/measurements/:id', async (req, res) => { const measurement = await measureManager.deleteMeasurement(measurementId); res.status(200).json({ message: 'Measurement deleted successfully', id: measurementId }); } catch (error) { - serverError.sendError('Error deleting measurement:', res, error); + serverError.sendError('Error deleting measurement:', res, error, 500); } }); @@ -79,7 +79,7 @@ router.delete('/measurements/:projectId/:orderId', async (req, res) => { const measurement = await measureManager.deleteMeasurementByOrderId(projectId, orderId); res.status(200).json({ message: 'Measurement deleted successfully', id: measurement.id }); } catch (error) { - serverError.sendError('Error deleting measurement:', res, error); + serverError.sendError('Error deleting measurement:', res, error, 500); } }); diff --git a/routes/projectRoutes.js b/routes/projectRoutes.js index eaf48de..ae1113a 100644 --- a/routes/projectRoutes.js +++ b/routes/projectRoutes.js @@ -8,7 +8,7 @@ router.get('/projects', async (req, res) => { const projects = await projectManager.getAllProjects(); res.json(projects); } catch (error) { - serverError.sendError('Error getting all projects:', res, error); + serverError.sendError('Error getting all projects:', res, error, 500); } }); @@ -21,7 +21,7 @@ router.get('/projects/:id', async (req, res) => { const project = await projectManager.getProjectById(projectId); res.json(project); } catch (error) { - serverError.sendError('Error getting project by ID:', res, error); + serverError.sendError('Error getting project by ID:', res, error, 500); } }); @@ -34,7 +34,7 @@ router.get('/projects/:id/videos', async (req, res) => { const videos = await projectManager.getVideosByProjectId(projectId); res.json(videos); } catch (error) { - serverError.sendError('Error getting videos by project ID:', res, error); + serverError.sendError('Error getting videos by project ID:', res, error, 500); } }); @@ -47,7 +47,7 @@ router.get('/projects/:id/measurements', async (req, res) => { const measurements = await projectManager.getMeasurementsByProjectId(projectId); res.json(measurements); } catch (error) { - serverError.sendError('Error getting measurements by project ID:', res, error); + serverError.sendError('Error getting measurements by project ID:', res, error, 500); } }); @@ -61,7 +61,7 @@ router.post('/projects', async (req, res) => { projectManager.createProjectDirectory(project.id); res.status(201).json({ message: 'Project added successfully', id: project.id }); } catch (error) { - serverError.sendError('Error creating project:', res, error); + serverError.sendError('Error creating project:', res, error, 500); } }); @@ -75,7 +75,7 @@ router.delete('/projects/:id', async (req, res) => { projectManager.deleteProjectById(projectId); res.status(200).json({ message: 'Project deleted successfully', id: projectId }); } catch (error) { - serverError.sendError('Error deleting project:', res, error); + serverError.sendError('Error deleting project:', res, error, 500); } }); diff --git a/routes/uploadRoutes.js b/routes/uploadRoutes.js index d7ec270..dcfde01 100644 --- a/routes/uploadRoutes.js +++ b/routes/uploadRoutes.js @@ -28,8 +28,7 @@ router.post('/uploadmeasurement', upload.single('image'), async (req, res) => { const measurement = await measureManager.addMeasureToProject(projectId, timestamp, imagePath, temperature, humidity, nextOrderId); res.json({ message: 'Measurement uploaded successfully', path: imagePath, id: measurement.id }); } catch (error) { - console.error('Error uploading measurement:', error); - serverError.sendError('Error uploading measurement:', res, error); + serverError.sendError('Error uploading measurement:', res, error, 500); } }); diff --git a/routes/videoRoutes.js b/routes/videoRoutes.js index 18c309d..9cc5302 100644 --- a/routes/videoRoutes.js +++ b/routes/videoRoutes.js @@ -13,7 +13,7 @@ router.get('/videos', (req, res) => { const query = 'SELECT * FROM public.videos'; db.query(query, (err, results) => { if (err) { - serverError.sendError('Erreur lors de la récupération des vidéos:', res, err); + serverError.sendError('Erreur lors de la récupération des vidéos:', res, err, 500); } res.json(results.rows); }); @@ -27,7 +27,7 @@ router.get('/videos/:id', (req, res) => { const query = 'SELECT * FROM public.videos WHERE id = $1'; db.query(query, [videoId], (err, results) => { if (err) { - serverError.sendError('Erreur lors de la récupération de la vidéo:', res, err); + serverError.sendError('Erreur lors de la récupération de la vidéo:', res, err, 500); } res.json(results.rows); }); @@ -140,7 +140,7 @@ router.post('/videos/render/:video_id', async (req, res) => { db.query(query, [videoId], async (err, results) => { if (err) { - return serverError.sendError('Error getting video:', res, err); + return serverError.sendError('Error getting video:', res, err, 500); } if (results.rows.length === 0) { return res.status(404).json({ error: 'Video not found' }); @@ -180,7 +180,7 @@ router.get('/videos/reset/:video_id', (req, res) => { db.query(query, [videoId], (err, results) => { if (err) { - return serverError.sendError('Error getting video:', res, err); + return serverError.sendError('Error getting video:', res, err, 500); } if (results.rows.length === 0) { return res.status(404).json({ error: 'Video not found' }); @@ -196,7 +196,7 @@ router.get('/videos/reset/:video_id', (req, res) => { const updateQuery = 'UPDATE public.videos SET status = 0, video_file = NULL WHERE id = $1'; db.query(updateQuery, [videoId], (err) => { if (err) { - return serverError.sendError('Error resetting video status:', res, err); + return serverError.sendError('Error resetting video status:', res, err, 500); } res.json({ message: 'Video reset successfully' }); }); diff --git a/src/video/videoManager.js b/src/video/videoManager.js index 068e483..520a590 100644 --- a/src/video/videoManager.js +++ b/src/video/videoManager.js @@ -76,7 +76,7 @@ async function createVideoWithList(projectId, pathList, duration, videoId) { return outputVideo; } catch (error) { console.error('Error creating video:', error); - serverError.sendError(error); + serverError.sendError('Error creating video', err=error); } finally { // Supprimer le fichier temporaire if (fs.existsSync(tempFile)) { diff --git a/utils/serverError.js b/utils/serverError.js index 44638f3..0b0ee6b 100644 --- a/utils/serverError.js +++ b/utils/serverError.js @@ -1,6 +1,12 @@ -function sendError(comment, res, err) { +function sendError(comment, res = { status: () => ({ json: () => {} }) }, err = null, code = 500) { console.error(comment, err); - res.status(500).send('Server error'); + res.status(code).json({ + error: { + message: comment, + code: code, + error: err + } + }); } module.exports = {