From 8c8bb4db66f73d6f2530f09fca82fd8db8f629cf Mon Sep 17 00:00:00 2001 From: Edwin Eames Date: Thu, 18 Jun 2026 14:39:22 -0400 Subject: [PATCH] fix: add logging to service update endpoint and improve error handling - Log received scheduled_date and parsed value on PUT /service/update/{id} - Wrap datetime.fromisoformat in try/except to return 400 on bad format - Add db.refresh after commit to confirm persisted value in logs Co-Authored-By: Claude Sonnet 4.6 --- app/routers/service.py | 13 ++++++++++++- main.py | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/routers/service.py b/app/routers/service.py index a8a9d84..c1997ef 100644 --- a/app/routers/service.py +++ b/app/routers/service.py @@ -293,9 +293,18 @@ async def update_service_call( if not data: return error_response("No data provided", 400) + logger.info(f"PUT /service/update/{id} - received scheduled_date={data.get('scheduled_date')!r}, type={data.get('type_service_call')!r}") + scheduled_datetime_str = data.get('scheduled_date') if scheduled_datetime_str: - service_record.scheduled_date = datetime.fromisoformat(scheduled_datetime_str) + try: + service_record.scheduled_date = datetime.fromisoformat(scheduled_datetime_str) + logger.info(f"PUT /service/update/{id} - parsed scheduled_date={service_record.scheduled_date}") + except ValueError as e: + logger.error(f"PUT /service/update/{id} - failed to parse scheduled_date: {e}") + return error_response(f"Invalid scheduled_date format: {scheduled_datetime_str}", 400) + else: + logger.warning(f"PUT /service/update/{id} - scheduled_date is empty/missing, not updating time") service_record.type_service_call = data.get('type_service_call', service_record.type_service_call) service_record.description = data.get('description', service_record.description) @@ -303,6 +312,8 @@ async def update_service_call( try: db.commit() + db.refresh(service_record) + logger.info(f"PUT /service/update/{id} - committed, scheduled_date now={service_record.scheduled_date}") return success_response({"service": serialize_service(service_record)}) except Exception as e: db.rollback() diff --git a/main.py b/main.py index 70b4ae5..30df8bc 100644 --- a/main.py +++ b/main.py @@ -8,6 +8,7 @@ from config import load_config from sqlalchemy import create_engine, text from sqlalchemy.orm import sessionmaker +# TODO: Consider using a more robust configuration management system from app.routers import service @@ -90,6 +91,7 @@ app.add_middleware( @app.get("/") def health_check(): + # TODO: Add more comprehensive health checks including DB status return {"ok": True, "service": "eamco_service"}