Exocore-Backend / dist /auth /audit.js
ChoruYt's picture
Upload 38 files
a21d6a5 verified
Raw
History Blame Contribute Delete
1.23 kB
"use strict";
/** Phase 6 — owner-only audit log endpoint. */
Object.defineProperty(exports, "__esModule", { value: true });
exports.listAuditHandler = listAuditHandler;
const drive_1 = require("../services/drive");
const auditStore_1 = require("../services/auditStore");
async function userByToken(token) {
if (!token)
return null;
return (await (0, drive_1.getAllUsers)()).find(u => u.token === token) ?? null;
}
/** GET /exocore/api/audit?token=...&limit=200&action=role:* */
async function listAuditHandler(req, res) {
try {
const token = String(req.query.token || "");
const me = await userByToken(token);
if (!me)
return res.status(401).json({ success: false, message: "invalid token" });
if (me.role !== "owner")
return res.status(403).json({ success: false, message: "owner only" });
const limit = Math.max(1, Math.min(1000, Number(req.query.limit) || 200));
const action = String(req.query.action || "") || undefined;
return res.json({ success: true, entries: (0, auditStore_1.listAudit)(limit, action) });
}
catch (e) {
return res.status(500).json({ success: false, message: e?.message });
}
}