From ef27660fc8253021a6977c255545cf6fdafc2d4e Mon Sep 17 00:00:00 2001 From: Lars Date: Sun, 22 Mar 2026 14:25:27 +0100 Subject: [PATCH] fix: photo upload with empty date string MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem: - Photo upload with empty date parameter (date='') - PostgreSQL rejects empty string for DATE field - Error: "invalid input syntax for type date: ''" - Occurred when saving circumference entry with only photo Fix: - Convert empty string to NULL before INSERT - Check: date if date and date.strip() else None - NULL is valid for optional date field Test case: - Circumference entry with only photo → should work now - Photo without date → stored with date=NULL ✓ Co-Authored-By: Claude Opus 4.6 --- backend/routers/photos.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend/routers/photos.py b/backend/routers/photos.py index 6fc06f0..24a42f7 100644 --- a/backend/routers/photos.py +++ b/backend/routers/photos.py @@ -50,10 +50,14 @@ async def upload_photo(file: UploadFile=File(...), date: str="", ext = Path(file.filename).suffix or '.jpg' path = PHOTOS_DIR / f"{fid}{ext}" async with aiofiles.open(path,'wb') as f: await f.write(await file.read()) + + # Convert empty string to NULL for date field + photo_date = date if date and date.strip() else None + with get_db() as conn: cur = get_cursor(conn) cur.execute("INSERT INTO photos (id,profile_id,date,path,created) VALUES (%s,%s,%s,%s,CURRENT_TIMESTAMP)", - (fid,pid,date,str(path))) + (fid,pid,photo_date,str(path))) # Phase 2: Increment usage counter increment_feature_usage(pid, 'photos')