Files
Project_Animatix/backend/app/api/routes/admin.py
2026-04-17 19:11:57 +05:30

29 lines
1.1 KiB
Python

from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from app.core.deps import get_current_user
from app.db.session import get_db
from app.models import Job, User
from app.services.comfy_client import comfy_client
router = APIRouter(prefix="/api/admin", tags=["admin"])
@router.get("/health")
async def health(_: User = Depends(get_current_user)):
return {"api": "ok", "comfyui": await comfy_client.health_check()}
@router.get("/queue")
async def queue(_: User = Depends(get_current_user)):
return await comfy_client.get_queue()
@router.get("/jobs-summary")
def jobs_summary(db: Session = Depends(get_db), _: User = Depends(get_current_user)):
total = db.query(Job).count()
active = db.query(Job).filter(Job.status.in_(["validating", "uploading_assets", "queued", "executing", "collecting_outputs"])).count()
completed = db.query(Job).filter(Job.status == "completed").count()
failed = db.query(Job).filter(Job.status == "failed").count()
return {"total": total, "active": active, "completed": completed, "failed": failed}