feat: add admin activity timeline filters

This commit is contained in:
Lan
2026-06-03 07:36:48 +08:00
parent 680dd2e5a5
commit b58f114918
2 changed files with 118 additions and 5 deletions
+19 -1
View File
@@ -4,6 +4,7 @@
# @Software: PyCharm
import datetime
from collections import Counter
from typing import Optional
from fastapi import APIRouter, Depends, HTTPException
from apps.admin.services import FileService, ConfigService, LocalFileService
@@ -39,6 +40,14 @@ admin_api = APIRouter(
)
def _pick_query_text(*values: Optional[str]) -> Optional[str]:
for value in values:
normalized_value = str(value or "").strip()
if normalized_value:
return normalized_value
return None
@admin_api.post("/login")
async def login(data: LoginData):
if not verify_password(data.password, settings.admin_token):
@@ -150,9 +159,18 @@ async def dashboard(file_service: FileService = Depends(get_file_service)):
@admin_api.get("/activities")
async def admin_activities(
limit: int = 20,
action: Optional[str] = None,
targetType: Optional[str] = None,
target_type: Optional[str] = None,
keyword: Optional[str] = None,
file_service: FileService = Depends(get_file_service),
):
result = await file_service.list_admin_activities(limit=limit)
result = await file_service.list_admin_activities(
limit=limit,
action=action,
target_type=_pick_query_text(targetType, target_type),
keyword=keyword,
)
return APIResponse(detail=result)