Améliorer la gestion des erreurs en ajoutant un code d'état HTTP aux réponses d'erreur dans plusieurs routes et en modifiant la fonction sendError pour accepter un code d'état personnalisé.
This commit is contained in:
@@ -31,7 +31,7 @@ router.post('/procedure/start/', async (req, res) => {
|
|||||||
const result = startProcedure(projectId, interval);
|
const result = startProcedure(projectId, interval);
|
||||||
res.status(200).json(result);
|
res.status(200).json(result);
|
||||||
} catch (err) {
|
} 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();
|
const result = stopProcedure();
|
||||||
res.status(200).json(result);
|
res.status(200).json(result);
|
||||||
} catch (err) {
|
} 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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -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';
|
const query = 'SELECT path FROM public.measurements WHERE project_id = $1 AND order_id = $2';
|
||||||
db.query(query, [projectId, orderId], (err, results) => {
|
db.query(query, [projectId, orderId], (err, results) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return serverError.sendError('Error getting image:', res, err);
|
return serverError.sendError('Error getting image:', res, err, 500);
|
||||||
}
|
}
|
||||||
if (results.rows.length === 0) {
|
if (results.rows.length === 0) {
|
||||||
return res.status(404).json({ error: 'Image not found' });
|
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';
|
const query = 'SELECT path FROM public.measurements WHERE id = $1';
|
||||||
db.query(query, [measurementId], (err, results) => {
|
db.query(query, [measurementId], (err, results) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return serverError.sendError('Error getting image:', res, err);
|
return serverError.sendError('Error getting image:', res, err, 500);
|
||||||
}
|
}
|
||||||
if (results.rows.length === 0) {
|
if (results.rows.length === 0) {
|
||||||
return res.status(404).json({ error: 'Image not found' });
|
return res.status(404).json({ error: 'Image not found' });
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ router.get('/measurements', (req, res) => {
|
|||||||
const query = 'SELECT * FROM public.measurements';
|
const query = 'SELECT * FROM public.measurements';
|
||||||
db.query(query, (err, results) => {
|
db.query(query, (err, results) => {
|
||||||
if (err) {
|
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);
|
res.json(results.rows);
|
||||||
});
|
});
|
||||||
@@ -22,7 +22,7 @@ router.get('/measurements/:id', (req, res) => {
|
|||||||
const query = 'SELECT * FROM public.measurements WHERE id = $1';
|
const query = 'SELECT * FROM public.measurements WHERE id = $1';
|
||||||
db.query(query, [measurementId], (err, results) => {
|
db.query(query, [measurementId], (err, results) => {
|
||||||
if (err) {
|
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);
|
res.json(results.rows);
|
||||||
});
|
});
|
||||||
@@ -38,7 +38,7 @@ router.get('/measurements/:projectId/:orderId', async (req, res) => {
|
|||||||
const measurement = await measureManager.getMeasurement(projectId, orderId);
|
const measurement = await measureManager.getMeasurement(projectId, orderId);
|
||||||
res.json(measurement);
|
res.json(measurement);
|
||||||
} catch (error) {
|
} 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';
|
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) => {
|
db.query(query, [project_id, timestamp, image_path, temperature, humidity], (err, results) => {
|
||||||
if (err) {
|
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 });
|
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);
|
const measurement = await measureManager.deleteMeasurement(measurementId);
|
||||||
res.status(200).json({ message: 'Measurement deleted successfully', id: measurementId });
|
res.status(200).json({ message: 'Measurement deleted successfully', id: measurementId });
|
||||||
} catch (error) {
|
} 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);
|
const measurement = await measureManager.deleteMeasurementByOrderId(projectId, orderId);
|
||||||
res.status(200).json({ message: 'Measurement deleted successfully', id: measurement.id });
|
res.status(200).json({ message: 'Measurement deleted successfully', id: measurement.id });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
serverError.sendError('Error deleting measurement:', res, error);
|
serverError.sendError('Error deleting measurement:', res, error, 500);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ router.get('/projects', async (req, res) => {
|
|||||||
const projects = await projectManager.getAllProjects();
|
const projects = await projectManager.getAllProjects();
|
||||||
res.json(projects);
|
res.json(projects);
|
||||||
} catch (error) {
|
} 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);
|
const project = await projectManager.getProjectById(projectId);
|
||||||
res.json(project);
|
res.json(project);
|
||||||
} catch (error) {
|
} 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);
|
const videos = await projectManager.getVideosByProjectId(projectId);
|
||||||
res.json(videos);
|
res.json(videos);
|
||||||
} catch (error) {
|
} 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);
|
const measurements = await projectManager.getMeasurementsByProjectId(projectId);
|
||||||
res.json(measurements);
|
res.json(measurements);
|
||||||
} catch (error) {
|
} 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);
|
projectManager.createProjectDirectory(project.id);
|
||||||
res.status(201).json({ message: 'Project added successfully', id: project.id });
|
res.status(201).json({ message: 'Project added successfully', id: project.id });
|
||||||
} catch (error) {
|
} 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);
|
projectManager.deleteProjectById(projectId);
|
||||||
res.status(200).json({ message: 'Project deleted successfully', id: projectId });
|
res.status(200).json({ message: 'Project deleted successfully', id: projectId });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
serverError.sendError('Error deleting project:', res, error);
|
serverError.sendError('Error deleting project:', res, error, 500);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -28,8 +28,7 @@ router.post('/uploadmeasurement', upload.single('image'), async (req, res) => {
|
|||||||
const measurement = await measureManager.addMeasureToProject(projectId, timestamp, imagePath, temperature, humidity, nextOrderId);
|
const measurement = await measureManager.addMeasureToProject(projectId, timestamp, imagePath, temperature, humidity, nextOrderId);
|
||||||
res.json({ message: 'Measurement uploaded successfully', path: imagePath, id: measurement.id });
|
res.json({ message: 'Measurement uploaded successfully', path: imagePath, id: measurement.id });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error uploading measurement:', error);
|
serverError.sendError('Error uploading measurement:', res, error, 500);
|
||||||
serverError.sendError('Error uploading measurement:', res, error);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ router.get('/videos', (req, res) => {
|
|||||||
const query = 'SELECT * FROM public.videos';
|
const query = 'SELECT * FROM public.videos';
|
||||||
db.query(query, (err, results) => {
|
db.query(query, (err, results) => {
|
||||||
if (err) {
|
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);
|
res.json(results.rows);
|
||||||
});
|
});
|
||||||
@@ -27,7 +27,7 @@ router.get('/videos/:id', (req, res) => {
|
|||||||
const query = 'SELECT * FROM public.videos WHERE id = $1';
|
const query = 'SELECT * FROM public.videos WHERE id = $1';
|
||||||
db.query(query, [videoId], (err, results) => {
|
db.query(query, [videoId], (err, results) => {
|
||||||
if (err) {
|
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);
|
res.json(results.rows);
|
||||||
});
|
});
|
||||||
@@ -140,7 +140,7 @@ router.post('/videos/render/:video_id', async (req, res) => {
|
|||||||
|
|
||||||
db.query(query, [videoId], async (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, 500);
|
||||||
}
|
}
|
||||||
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' });
|
||||||
@@ -180,7 +180,7 @@ router.get('/videos/reset/:video_id', (req, res) => {
|
|||||||
|
|
||||||
db.query(query, [videoId], (err, results) => {
|
db.query(query, [videoId], (err, results) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return serverError.sendError('Error getting video:', res, err);
|
return serverError.sendError('Error getting video:', res, err, 500);
|
||||||
}
|
}
|
||||||
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' });
|
||||||
@@ -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';
|
const updateQuery = 'UPDATE public.videos SET status = 0, video_file = NULL WHERE id = $1';
|
||||||
db.query(updateQuery, [videoId], (err) => {
|
db.query(updateQuery, [videoId], (err) => {
|
||||||
if (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' });
|
res.json({ message: 'Video reset successfully' });
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ async function createVideoWithList(projectId, pathList, duration, videoId) {
|
|||||||
return outputVideo;
|
return outputVideo;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error creating video:', error);
|
console.error('Error creating video:', error);
|
||||||
serverError.sendError(error);
|
serverError.sendError('Error creating video', err=error);
|
||||||
} finally {
|
} finally {
|
||||||
// Supprimer le fichier temporaire
|
// Supprimer le fichier temporaire
|
||||||
if (fs.existsSync(tempFile)) {
|
if (fs.existsSync(tempFile)) {
|
||||||
|
|||||||
@@ -1,6 +1,12 @@
|
|||||||
function sendError(comment, res, err) {
|
function sendError(comment, res = { status: () => ({ json: () => {} }) }, err = null, code = 500) {
|
||||||
console.error(comment, err);
|
console.error(comment, err);
|
||||||
res.status(500).send('Server error');
|
res.status(code).json({
|
||||||
|
error: {
|
||||||
|
message: comment,
|
||||||
|
code: code,
|
||||||
|
error: err
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|||||||
Reference in New Issue
Block a user