feat: gestione gruppi di ticket. feat: miglioramento filtri ticket a mio carico e ticket. feat: possiblità di copiare il numero del tocket con pulsante copia
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user