zkt26/z1/webapp/routes/complexe.js
2026-03-31 19:33:15 +02:00

78 lines
2.3 KiB
JavaScript

const express = require('express');
const router = express.Router();
const db = require('../config/db');
// Modifier un objet
router.post('/update-objet', (req, res) => {
const { adresse_ip, niveau, etat } = req.body;
const sql = 'UPDATE objet SET niveau = ?, etat = ? WHERE adresse_ip = ?';
db.query(sql, [niveau, etat, adresse_ip], (err) => {
if (err) {
console.error("Erreur lors de la modification de l'objet :", err);
return res.status(500).send("Erreur lors de la modification de l'objet");
}
res.redirect('/dashboard-complexe');
});
});
// Supprimer un objet (et ses dépendances)
router.post('/supprimer-objet', (req, res) => {
const { adresse_ip } = req.body;
console.log('Adresse IP reçue pour suppression :', adresse_ip);
const deleteChildTables = [
'climatisation_chauffage',
'thermostat',
'appareil_menager',
'securite'
];
const deleteFromTable = (table) => {
return new Promise((resolve, reject) => {
const sql = `DELETE FROM ${table} WHERE adresse_ip = ?`;
db.query(sql, [adresse_ip], (err) => {
if (err) {
console.error(`Erreur suppression dans ${table} :`, err);
return reject(err);
}
resolve();
});
});
};
Promise.all(deleteChildTables.map(deleteFromTable))
.then(() => {
db.query('DELETE FROM objet WHERE adresse_ip = ?', [adresse_ip], (err) => {
if (err) {
console.error('Erreur suppression objet :', err);
return res.status(500).send("Erreur lors de la suppression de l'objet");
}
res.redirect('/dashboard-complexe');
});
})
.catch(err => {
res.status(500).send("Erreur lors de la suppression d'une dépendance liée à l'objet");
});
});
// Ajouter un objet
router.post('/ajouter-objet', (req, res) => {
const { denomination, adresse_ip, type, niveau, etat } = req.body;
const sql = `
INSERT INTO objet (denomination, adresse_ip, type, niveau, etat)
VALUES (?, ?, ?, ?, ?)`;
db.query(sql, [denomination, adresse_ip, type, niveau, etat], (err) => {
if (err) {
console.error('Erreur ajout objet :', err);
return res.status(500).send("Erreur lors de l'ajout de l'objet");
}
res.redirect('/dashboard-complexe');
});
});
module.exports = router;