PR_IRminiSaaS / app /routers /deliver.py
Corin1998's picture
Update app/routers/deliver.py
471b7c7 verified
raw
history blame contribute delete
909 Bytes
from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from app.database import get_db
from app import models
from app.tasks import task_deliver
from app.config import settings
router = APIRouter(prefix="/deliver", tags=["deliver"])
@router.post("/{draft_id}")
async def deliver_now(draft_id: int, db: Session = Depends(get_db)):
draft = db.get(models.Draft, draft_id)
if not draft:
return {"error": "not found"}
if draft.status not in [models.DraftStatus.approved, models.DraftStatus.scheduled]:
return {"error": f"status must be approved/scheduled, current={draft.status.value}"}
if settings.CELERY_BROKER_URL:
task_deliver.delay(draft.id)
return {"ok": True, "queued": True}
else:
# inline for demo; real env should use worker
res = task_deliver(draft.id)
return {"ok": True, "queued": False, "result": res}