C3: Add DELETE endpoint to sequences route (admin-only, soft-delete)

This commit is contained in:
2026-07-04 01:30:04 +00:00
parent a925ca01e4
commit e594e8aa16
+28 -1
View File
@@ -1,4 +1,4 @@
"""Sequence routes — list, create, update (admin only).""" """Sequence routes — list, create, update, delete (admin only)."""
from __future__ import annotations from __future__ import annotations
@@ -83,3 +83,30 @@ async def update_sequence(
if result is None: if result is None:
raise HTTPException(404, detail={"detail": "Sequence not found", "code": "not_found"}) raise HTTPException(404, detail={"detail": "Sequence not found", "code": "not_found"})
return result return result
@router.delete("/{sequence_id}", status_code=status.HTTP_204_NO_CONTENT)
async def delete_sequence(
sequence_id: str,
db: AsyncSession = Depends(get_db),
current_user: dict = Depends(get_current_user),
):
"""Delete a sequence (soft-delete). Admin only."""
tenant_id = uuid.UUID(current_user["tenant_id"])
user_id = uuid.UUID(current_user["user_id"])
role = current_user.get("role", "viewer")
if not check_permission(role, "settings", "delete"):
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail={"detail": "Insufficient permissions", "code": "forbidden"},
)
try:
sid = uuid.UUID(sequence_id)
except ValueError:
raise HTTPException(400, detail={"detail": "Invalid sequence_id", "code": "invalid_id"}) from None
deleted = await sequence_service.delete_sequence(db, tenant_id, user_id, sid)
if not deleted:
raise HTTPException(404, detail={"detail": "Sequence not found", "code": "not_found"})