78 lines
2.3 KiB
JavaScript
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;
|