Files
ai-contract-platform/backend/app/api/audit_logs.py
T
2026-04-24 13:44:17 +08:00

38 lines
1.1 KiB
Python

from typing import Optional
from fastapi import APIRouter, Depends, Header
from sqlalchemy.orm import Session
from app.core.response import success_response
from app.db import get_db_session
from app.services.audit_log_service import AuditLogService
from app.services.auth_service import AuthService
router = APIRouter(prefix="/audit-logs", tags=["audit-logs"])
ROUTE_PERMISSION_SCOPE = "audit_log"
ROUTE_PERMISSION_ACTIONS = {
"list": "audit_logs:list",
}
def get_audit_log_service(db: Session = Depends(get_db_session)) -> AuditLogService:
return AuditLogService(db)
def require_current_user(
authorization: Optional[str] = Header(default=None),
db: Session = Depends(get_db_session),
):
return AuthService(db).require_current_user(authorization)
@router.get("")
def list_audit_logs(
page: int = 1,
page_size: int = 20,
action: Optional[str] = None,
audit_log_service: AuditLogService = Depends(get_audit_log_service),
current_user: dict = Depends(require_current_user),
):
return success_response(audit_log_service.list_logs(current_user, page, page_size, action))