mirror of
https://github.com/screentinker/screentinker.git
synced 2026-05-15 07:32:23 -06:00
29 lines
861 B
JavaScript
29 lines
861 B
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const { getActivity, pruneActivityLog } = require('../services/activity');
|
|
const { PLATFORM_ROLES, ELEVATED_ROLES } = require('../middleware/auth');
|
|
|
|
// Get activity log
|
|
router.get('/', (req, res) => {
|
|
const { device_id, limit, offset } = req.query;
|
|
const isAdmin = PLATFORM_ROLES.includes(req.user.role);
|
|
|
|
const activity = getActivity({
|
|
userId: isAdmin ? null : req.user.id,
|
|
deviceId: device_id || null,
|
|
limit: Math.min(parseInt(limit) || 50, 200),
|
|
offset: parseInt(offset) || 0,
|
|
});
|
|
|
|
res.json(activity);
|
|
});
|
|
|
|
// Prune old logs (admin only)
|
|
router.delete('/prune', (req, res) => {
|
|
if (!ELEVATED_ROLES.includes(req.user.role)) return res.status(403).json({ error: 'Admin only' });
|
|
pruneActivityLog();
|
|
res.json({ success: true });
|
|
});
|
|
|
|
module.exports = router;
|