From 9a4ada16148bd7cfbb78ff4afc4946ad16fa3f32 Mon Sep 17 00:00:00 2001 From: bernatsampera Date: Sun, 9 Aug 2026 02:36:26 +0200 Subject: [PATCH] Add unpublish endpoint to moderation router Co-Authored-By: Claude Opus 4.6 (1M context) --- api/app/routes_moderation.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/api/app/routes_moderation.py b/api/app/routes_moderation.py index 80c21e7..26594ca 100644 --- a/api/app/routes_moderation.py +++ b/api/app/routes_moderation.py @@ -76,3 +76,16 @@ def reject(workflow_id: str, session: Session = Depends(get_session)): template.reviewed_at = datetime.now(timezone.utc) session.commit() return {"id": workflow_id, "status": REJECTED} + + +@router.post("/{workflow_id}/unpublish", dependencies=[Depends(require_admin)]) +def unpublish(workflow_id: str, session: Session = Depends(get_session)): + template = session.scalars( + select(Template).where(Template.id == workflow_id, Template.status == APPROVED) + ).first() + if template is None: + raise HTTPException(status_code=404, detail="no approved workflow with this id") + template.status = REJECTED + template.reviewed_at = datetime.now(timezone.utc) + session.commit() + return {"id": workflow_id, "status": REJECTED}