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 <noreply@anthropic.com>
This commit is contained in:
2026-06-18 14:39:22 -04:00
parent 07865480c7
commit 8c8bb4db66
2 changed files with 14 additions and 1 deletions
+12 -1
View File
@@ -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()