fix: wrap abilities dict with Json() for JSONB insert (#13)
Problem: Creating new training types via Admin UI resulted in
'Internal Server Error' because abilities dict was passed directly
to PostgreSQL JSONB column without Json() wrapper.
Solution:
- Import Json from psycopg2.extras
- Wrap abilities_json with Json() in INSERT
- Wrap data.abilities with Json() in UPDATE
Same issue as rest_days JSONB fix (commit 7d627cf).
Closes #13
This commit is contained in:
parent
7a0b2097ae
commit
29770503bf
|
|
@ -7,6 +7,7 @@ import logging
|
|||
from typing import Optional
|
||||
from fastapi import APIRouter, HTTPException, Depends
|
||||
from pydantic import BaseModel
|
||||
from psycopg2.extras import Json
|
||||
|
||||
from db import get_db, get_cursor, r2d
|
||||
from auth import require_auth, require_admin
|
||||
|
|
@ -103,7 +104,7 @@ def create_training_type(data: TrainingTypeCreate, session: dict = Depends(requi
|
|||
data.description_de,
|
||||
data.description_en,
|
||||
data.sort_order,
|
||||
abilities_json
|
||||
Json(abilities_json)
|
||||
))
|
||||
|
||||
new_id = cur.fetchone()['id']
|
||||
|
|
@ -153,7 +154,7 @@ def update_training_type(
|
|||
values.append(data.sort_order)
|
||||
if data.abilities is not None:
|
||||
updates.append("abilities = %s")
|
||||
values.append(data.abilities)
|
||||
values.append(Json(data.abilities))
|
||||
|
||||
if not updates:
|
||||
raise HTTPException(400, "No fields to update")
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user