29 lines
1.1 KiB
Python
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}
|