Refactor la gestion des mesures en remplaçant le gestionnaire de mesures par le gestionnaire de stockage. Ajouter des fonctions pour gérer les images et les chemins des mesures. Améliorer la gestion des erreurs et nettoyer le code.
This commit is contained in:
@@ -1,86 +1,54 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const db = require('../db');
|
||||
const measureManager = require('../src/measure/measureManager');
|
||||
const serverError = require('../utils/serverError');
|
||||
const database_manager = require('../src/database/database_manager');
|
||||
|
||||
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, 500);
|
||||
}
|
||||
res.json(results.rows);
|
||||
});
|
||||
const measurements = database_manager.measurement.get_all_measurements();
|
||||
if (!measurements) {
|
||||
return res.status(404).json({ error: 'No measurements found' });
|
||||
}
|
||||
res.json(measurements);
|
||||
});
|
||||
|
||||
router.get('/measurements/:id', (req, res) => {
|
||||
const measurementId = req.params.id;
|
||||
if (!measurementId || isNaN(measurementId)) {
|
||||
return res.status(400).json({ error: 'Invalid measurement ID' });
|
||||
const measurement = database_manager.measurement.get_measurement_by_id(req.params.id);
|
||||
if (!measurement) {
|
||||
return res.status(404).json({ error: 'Measurement not found' });
|
||||
}
|
||||
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, 500);
|
||||
}
|
||||
res.json(results.rows);
|
||||
});
|
||||
res.json(measurement);
|
||||
});
|
||||
|
||||
router.get('/measurements/:projectId/:orderId', async (req, res) => {
|
||||
const projectId = req.params.projectId;
|
||||
const orderId = req.params.orderId;
|
||||
if (!projectId || isNaN(projectId) || !orderId || isNaN(orderId)) {
|
||||
return res.status(400).json({ error: 'Invalid project ID or order ID' });
|
||||
}
|
||||
try {
|
||||
const measurement = await measureManager.getMeasurement(projectId, orderId);
|
||||
res.json(measurement);
|
||||
} catch (error) {
|
||||
serverError.sendError('Error getting measurement:', res, error, 500);
|
||||
const measurement = await database_manager.measurement.get_measurement_by_project_and_order_id(req.params.projectId, req.params.orderId);
|
||||
if (!measurement) {
|
||||
return res.status(404).json({ error: 'Measurement not found' });
|
||||
}
|
||||
res.json(measurement);
|
||||
});
|
||||
|
||||
router.post('/measurements', (req, res) => {
|
||||
const { project_id, timestamp, image_path, temperature, humidity } = req.body;
|
||||
if (!project_id || !timestamp || !image_path || !temperature || !humidity) {
|
||||
const { projectId, timestamp, imagePath, temperature, humidity, orderId } = req.body;
|
||||
if (!projectId || !timestamp || !imagePath || !temperature || !humidity || !orderId) {
|
||||
return res.status(400).json({ error: 'All fields are required' });
|
||||
}
|
||||
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, 500);
|
||||
}
|
||||
res.status(201).json({ message: 'Mesure ajoutée avec succès', id: results.rows[0].id });
|
||||
});
|
||||
const measurement = database_manager.measurement.add_measurement(projectId, timestamp, imagePath, temperature, humidity, orderId);
|
||||
res.status(201).json(measurement);
|
||||
});
|
||||
|
||||
router.delete('/measurements/:id', async (req, res) => {
|
||||
const measurementId = req.params.id;
|
||||
if (!measurementId || isNaN(measurementId)) {
|
||||
return res.status(400).json({ error: 'Invalid measurement ID' });
|
||||
}
|
||||
try {
|
||||
await measureManager.deleteMeasurement(measurementId);
|
||||
res.status(200).json({ message: 'Measurement deleted successfully', id: measurementId });
|
||||
} catch (error) {
|
||||
serverError.sendError('Error deleting measurement:', res, error, 500);
|
||||
const measurement = await database_manager.measurement.delete_measurement_by_id(req.params.id);
|
||||
if (!measurement) {
|
||||
return res.status(404).json({ error: 'Measurement not found' });
|
||||
}
|
||||
res.json({ message: 'Measurement deleted successfully', id: measurement.id });
|
||||
});
|
||||
|
||||
router.delete('/measurements/:projectId/:orderId', async (req, res) => {
|
||||
const projectId = req.params.projectId;
|
||||
const orderId = req.params.orderId;
|
||||
if (!projectId || isNaN(projectId) || !orderId || isNaN(orderId)) {
|
||||
return res.status(400).json({ error: 'Invalid project ID or order ID' });
|
||||
}
|
||||
try {
|
||||
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, 500);
|
||||
const measurement = await database_manager.measurement.delete_measurement_by_project_and_order_id(req.params.projectId, req.params.orderId);
|
||||
if (!measurement) {
|
||||
return res.status(404).json({ error: 'Measurement not found' });
|
||||
}
|
||||
res.json({ message: 'Measurement deleted successfully', id: measurement.id });
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
|
||||
Reference in New Issue
Block a user