Spaces:
Sleeping
Sleeping
Update app/routers/deliver.py
Browse files- app/routers/deliver.py +9 -4
app/routers/deliver.py
CHANGED
|
@@ -3,11 +3,10 @@ from sqlalchemy.orm import Session
|
|
| 3 |
from app.database import get_db
|
| 4 |
from app import models
|
| 5 |
from app.tasks import task_deliver
|
| 6 |
-
|
| 7 |
|
| 8 |
router = APIRouter(prefix="/deliver", tags=["deliver"])
|
| 9 |
|
| 10 |
-
|
| 11 |
@router.post("/{draft_id}")
|
| 12 |
async def deliver_now(draft_id: int, db: Session = Depends(get_db)):
|
| 13 |
draft = db.get(models.Draft, draft_id)
|
|
@@ -15,5 +14,11 @@ async def deliver_now(draft_id: int, db: Session = Depends(get_db)):
|
|
| 15 |
return {"error": "not found"}
|
| 16 |
if draft.status not in [models.DraftStatus.approved, models.DraftStatus.scheduled]:
|
| 17 |
return {"error": f"status must be approved/scheduled, current={draft.status.value}"}
|
| 18 |
-
|
| 19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
from app.database import get_db
|
| 4 |
from app import models
|
| 5 |
from app.tasks import task_deliver
|
| 6 |
+
from app.config import settings
|
| 7 |
|
| 8 |
router = APIRouter(prefix="/deliver", tags=["deliver"])
|
| 9 |
|
|
|
|
| 10 |
@router.post("/{draft_id}")
|
| 11 |
async def deliver_now(draft_id: int, db: Session = Depends(get_db)):
|
| 12 |
draft = db.get(models.Draft, draft_id)
|
|
|
|
| 14 |
return {"error": "not found"}
|
| 15 |
if draft.status not in [models.DraftStatus.approved, models.DraftStatus.scheduled]:
|
| 16 |
return {"error": f"status must be approved/scheduled, current={draft.status.value}"}
|
| 17 |
+
|
| 18 |
+
if settings.CELERY_BROKER_URL:
|
| 19 |
+
task_deliver.delay(draft.id)
|
| 20 |
+
return {"ok": True, "queued": True}
|
| 21 |
+
else:
|
| 22 |
+
# inline for demo; real env should use worker
|
| 23 |
+
res = task_deliver(draft.id)
|
| 24 |
+
return {"ok": True, "queued": False, "result": res}
|