feat: aggiunta tracciatura delle modifiche effettuate

This commit is contained in:
2026-07-07 21:51:58 +02:00
parent 3f6d2cc3a8
commit bf8b4c387e
10 changed files with 914 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
/**
* routes/activity.js
* GET /api/attivita — Paginates and filters the local SQLite activity log.
*/
const express = require('express');
const router = express.Router();
const { db } = require('../activityDb');
router.get('/', (req, res) => {
try {
const {
page = 1,
per_page = 50,
agente_id,
esito,
da,
a,
} = req.query;
const pageNum = Math.max(1, parseInt(page, 10));
const perPageNum = Math.min(200, Math.max(1, parseInt(per_page, 10)));
const offset = (pageNum - 1) * perPageNum;
const conditions = [];
const params = [];
if (agente_id) {
conditions.push('agente_id = ?');
params.push(parseInt(agente_id, 10));
}
if (esito) {
conditions.push('esito = ?');
params.push(esito);
}
if (da) {
conditions.push('creato_il >= ?');
params.push(da);
}
if (a) {
conditions.push('creato_il <= ?');
params.push(a);
}
const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
const totalRow = db.prepare(`SELECT COUNT(*) AS cnt FROM attivita ${whereClause}`).get(...params);
const total = totalRow ? totalRow.cnt : 0;
const rows = db
.prepare(`SELECT * FROM attivita ${whereClause} ORDER BY creato_il DESC LIMIT ? OFFSET ?`)
.all(...params, perPageNum, offset);
res.json({
rows,
total,
page: pageNum,
per_page: perPageNum,
total_pages: Math.ceil(total / perPageNum),
});
} catch (err) {
console.error('[activity] Error fetching activities:', err);
res.status(500).json({ error: err.message });
}
});
module.exports = router;