imetting/backend/app/api/endpoints/admin_dashboard.py

48 lines
1.8 KiB
Python

from fastapi import APIRouter, Depends, Query
from app.core.auth import get_current_admin_user
import app.services.admin_dashboard_service as admin_dashboard_service
router = APIRouter()
@router.get("/admin/dashboard/stats")
async def get_dashboard_stats(current_user=Depends(get_current_admin_user)):
return await admin_dashboard_service.get_dashboard_stats(current_user)
@router.get("/admin/online-users")
async def get_online_users(current_user=Depends(get_current_admin_user)):
return await admin_dashboard_service.get_online_users(current_user)
@router.post("/admin/kick-user/{user_id}")
async def kick_user(user_id: int, current_user=Depends(get_current_admin_user)):
return await admin_dashboard_service.kick_user(user_id, current_user)
@router.get("/admin/tasks/monitor")
async def monitor_tasks(
task_type: str = Query('all', description="任务类型: all, transcription, summary, knowledge_base"),
status: str = Query('all', description="任务状态: all, running, completed, failed"),
limit: int = Query(20, ge=1, le=100, description="返回数量限制"),
current_user=Depends(get_current_admin_user)
):
return await admin_dashboard_service.monitor_tasks(task_type, status, limit, current_user)
@router.get("/admin/system/resources")
async def get_system_resources(current_user=Depends(get_current_admin_user)):
return await admin_dashboard_service.get_system_resources(current_user)
@router.get("/admin/user-stats")
async def get_user_stats(current_user=Depends(get_current_admin_user)):
return await admin_dashboard_service.get_user_stats(current_user)
@router.post("/admin/tasks/{task_type}/{task_id}/retry")
async def retry_task(task_type: str, task_id: str, current_user=Depends(get_current_admin_user)):
return await admin_dashboard_service.retry_task(task_type, task_id, current_user)