44 lines
1017 B
TypeScript
44 lines
1017 B
TypeScript
import { requireAdmin } from '~/server/utils/auth';
|
|
import { getAuditStats } from '~/server/utils/audit-logger';
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
console.log('[ADMIN] Audit stats request');
|
|
|
|
try {
|
|
// Require admin authentication
|
|
await requireAdmin(event);
|
|
|
|
// Get query parameters
|
|
const query = getQuery(event);
|
|
const days = query.days ? parseInt(query.days as string) : 30;
|
|
|
|
// Get audit statistics
|
|
const stats = await getAuditStats(days);
|
|
|
|
console.log('[ADMIN] Returning audit stats:', {
|
|
totalEvents: stats.totalEvents,
|
|
days
|
|
});
|
|
|
|
return {
|
|
success: true,
|
|
data: stats
|
|
};
|
|
|
|
} catch (error: any) {
|
|
console.error('[ADMIN] Failed to get audit stats:', error);
|
|
|
|
if (error.statusCode === 403) {
|
|
return {
|
|
success: false,
|
|
error: 'Insufficient permissions. Admin access required.'
|
|
};
|
|
}
|
|
|
|
return {
|
|
success: false,
|
|
error: 'Failed to retrieve audit statistics'
|
|
};
|
|
}
|
|
});
|