admin / Bid-Sentinel
publicBid Scrape and Tracking Application with AI Capability
Bid-Sentinel / bid-sentinel-v2 / backend / app / routers / audit.py
801 B · main
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | """Audit-trail viewing endpoint (admin only).""" from fastapi import APIRouter, Depends, Query from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from app.database import get_db from app.deps import get_current_admin from app.models import AuditLog, User from app.schemas import AuditOut router = APIRouter(prefix="/audit", tags=["audit"]) @router.get("", response_model=list[AuditOut]) async def list_audit( db: AsyncSession = Depends(get_db), _admin: User = Depends(get_current_admin), limit: int = Query(default=200, le=1000), offset: int = Query(default=0, ge=0), ): stmt = select(AuditLog).order_by(AuditLog.created_at.desc(), AuditLog.id.desc()).limit(limit).offset(offset) result = await db.execute(stmt) return result.scalars().all() |