From d9bcaaaac6bb8e452ffe0a2ff373bd001f267a41 Mon Sep 17 00:00:00 2001 From: Lars Date: Sat, 4 Apr 2026 22:43:07 +0200 Subject: [PATCH] fix: Add missing GET /api/prompts/{id} endpoint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Critical Backend Bug: - Frontend calls api.getPrompt(id) → GET /api/prompts/{uuid} - Backend had NO endpoint for single prompt retrieval by ID - Result: 405 Method Not Allowed Backend Endpoints Before: ✓ GET /api/prompts - List all ✓ POST /api/prompts - Create ✓ PUT /api/prompts/{id} - Update ✗ GET /api/prompts/{id} - MISSING! Backend Endpoints After: ✓ GET /api/prompts - List all ✓ GET /api/prompts/{id} - Get single (NEW) ✓ POST /api/prompts - Create ✓ PUT /api/prompts/{id} - Update Implementation: - Added get_prompt(prompt_id: str) function - Returns single prompt by UUID - 404 if not found - Requires auth (admin or user) This fixes: - Workflow loading after save (loadWorkflow calls getPrompt) - Workflow editing from admin list (Edit button calls getPrompt) - All 405 Method Not Allowed errors Root Cause: Backend was incomplete, missing basic CRUD read-by-id endpoint --- backend/routers/prompts.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/backend/routers/prompts.py b/backend/routers/prompts.py index c92bd23..a52ebe4 100644 --- a/backend/routers/prompts.py +++ b/backend/routers/prompts.py @@ -53,6 +53,20 @@ def list_prompts(session: dict=Depends(require_auth)): return [r2d(r) for r in cur.fetchall()] +@router.get("/{prompt_id}") +def get_prompt(prompt_id: str, session: dict=Depends(require_auth)): + """Get single AI prompt by ID (UUID).""" + with get_db() as conn: + cur = get_cursor(conn) + cur.execute("SELECT * FROM ai_prompts WHERE id=%s", (prompt_id,)) + row = cur.fetchone() + + if not row: + raise HTTPException(status_code=404, detail="Prompt not found") + + return r2d(row) + + @router.post("") def create_prompt(p: PromptCreate, session: dict=Depends(require_admin)): """Create new AI prompt (admin only)."""