const express = require('express'); const router = express.Router(); const { db } = require('../activityDb'); // GET /api/presets - Get all presets for the active agent and page mode router.get('/', (req, res) => { try { const agentId = parseInt(req.headers['x-agent-id'] || '1', 10); const { page_mode } = req.query; // 'general' or 'my' if (!page_mode) { return res.status(400).json({ error: 'Il parametro page_mode รจ obbligatorio' }); } const presets = db.prepare(` SELECT * FROM filter_presets WHERE agent_id = ? AND page_mode = ? ORDER BY name ASC `).all(agentId, page_mode); res.json(presets); } catch (err) { res.status(500).json({ error: 'Errore nel caricamento dei preset', message: err.message }); } }); // POST /api/presets - Save a new filter preset router.post('/', (req, res) => { try { const agentId = parseInt(req.headers['x-agent-id'] || '1', 10); const { name, page_mode, filters } = req.body; if (!name || !page_mode || !filters) { return res.status(400).json({ error: 'I campi name, page_mode e filters sono obbligatori' }); } const filtersJson = typeof filters === 'string' ? filters : JSON.stringify(filters); const info = db.prepare(` INSERT INTO filter_presets (agent_id, name, page_mode, filters_json) VALUES (?, ?, ?, ?) `).run(agentId, name, page_mode, filtersJson); res.json({ id: info.lastInsertRowid, agent_id: agentId, name, page_mode, filters_json: filtersJson }); } catch (err) { res.status(500).json({ error: 'Errore nel salvataggio del preset', message: err.message }); } }); // DELETE /api/presets/:id - Delete a preset router.delete('/:id', (req, res) => { try { const { id } = req.params; const info = db.prepare('DELETE FROM filter_presets WHERE id = ?').run(id); if (info.changes === 0) { return res.status(404).json({ error: 'Preset non trovato' }); } res.json({ success: true, message: 'Preset eliminato con successo' }); } catch (err) { res.status(500).json({ error: 'Errore nella rimozione del preset', message: err.message }); } }); module.exports = router;