Files
2026-08-23 09:04:47 +00:00

62 lines
2.1 KiB
JavaScript

const pool = require('../config/db');
const { logActivity } = require('../services/activityLog');
exports.list = async (req, res) => {
try {
const [rows] = await pool.query(`
SELECT mh.*, u.prenom, u.nom, u.societe AS membre_societe
FROM mises_en_honneur mh
LEFT JOIN users u ON u.id = mh.membre_id
ORDER BY mh.date ASC
`);
res.json(rows);
} catch (err) {
console.error(err);
res.status(500).json({ error: 'Server error' });
}
};
exports.create = async (req, res) => {
try {
const { date, membre_id, societe, theme_sujet } = req.body;
if (!date || !theme_sujet) {
return res.status(400).json({ error: 'Date and theme required' });
}
const [result] = await pool.query(
'INSERT INTO mises_en_honneur (date, membre_id, societe, theme_sujet) VALUES (?, ?, ?, ?)',
[date, membre_id || null, societe || null, theme_sujet]
);
res.status(201).json({ id: result.insertId, message: 'Honor added' });
logActivity(req, 'honneur_ajout', { date, membre_id, theme_sujet });
} catch (err) {
console.error(err);
res.status(500).json({ error: 'Server error' });
}
};
exports.update = async (req, res) => {
try {
const { date, membre_id, societe, theme_sujet } = req.body;
await pool.query(
'UPDATE mises_en_honneur SET date = ?, membre_id = ?, societe = ?, theme_sujet = ? WHERE id = ?',
[date, membre_id || null, societe || null, theme_sujet, req.params.id]
);
res.json({ message: 'Updated' });
logActivity(req, 'honneur_modification', { id: req.params.id, date, membre_id, theme_sujet });
} catch (err) {
console.error(err);
res.status(500).json({ error: 'Server error' });
}
};
exports.remove = async (req, res) => {
try {
await pool.query('DELETE FROM mises_en_honneur WHERE id = ?', [req.params.id]);
res.json({ message: 'Deleted' });
logActivity(req, 'honneur_suppression', { id: req.params.id });
} catch (err) {
console.error(err);
res.status(500).json({ error: 'Server error' });
}
};