| from fastapi import APIRouter, Depends |
| from backend.core.database import get_database |
| from backend.api.dependencies import get_admin_user |
|
|
| router = APIRouter(prefix="/admin", tags=["Admin Panel"]) |
|
|
| @router.get("/stats") |
| async def get_global_stats(admin_user: dict = Depends(get_admin_user)): |
| db = get_database() |
| |
| total_users = await db["users"].count_documents({}) |
| total_jobs = await db["jobs"].count_documents({}) |
| active_jobs = await db["jobs"].count_documents({"status": "active"}) |
| total_logs = await db["job_logs"].count_documents({}) |
| |
| return { |
| "total_users": total_users, |
| "total_jobs": total_jobs, |
| "active_jobs": active_jobs, |
| "total_requests_executed": total_logs |
| } |
|
|
| @router.get("/users") |
| async def list_users(admin_user: dict = Depends(get_admin_user)): |
| db = get_database() |
| |
| cursor = db["users"].find({}, {"hf_token_encrypted": 0}) |
| users = await cursor.to_list(length=100) |
| |
| for user in users: |
| user["_id"] = str(user["_id"]) |
| |
| return {"users": users} |
|
|
| @router.get("/jobs") |
| async def list_all_jobs(admin_user: dict = Depends(get_admin_user)): |
| db = get_database() |
| cursor = db["jobs"].find({}) |
| jobs = await cursor.to_list(length=100) |
| |
| for job in jobs: |
| job["_id"] = str(job["_id"]) |
| |
| return {"jobs": jobs} |
| |