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:
@@ -293,9 +293,18 @@ async def update_service_call(
|
|||||||
if not data:
|
if not data:
|
||||||
return error_response("No data provided", 400)
|
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')
|
scheduled_datetime_str = data.get('scheduled_date')
|
||||||
if scheduled_datetime_str:
|
if scheduled_datetime_str:
|
||||||
|
try:
|
||||||
service_record.scheduled_date = datetime.fromisoformat(scheduled_datetime_str)
|
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.type_service_call = data.get('type_service_call', service_record.type_service_call)
|
||||||
service_record.description = data.get('description', service_record.description)
|
service_record.description = data.get('description', service_record.description)
|
||||||
@@ -303,6 +312,8 @@ async def update_service_call(
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
db.commit()
|
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)})
|
return success_response({"service": serialize_service(service_record)})
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
db.rollback()
|
db.rollback()
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ from config import load_config
|
|||||||
from sqlalchemy import create_engine, text
|
from sqlalchemy import create_engine, text
|
||||||
from sqlalchemy.orm import sessionmaker
|
from sqlalchemy.orm import sessionmaker
|
||||||
|
|
||||||
|
# TODO: Consider using a more robust configuration management system
|
||||||
from app.routers import service
|
from app.routers import service
|
||||||
|
|
||||||
|
|
||||||
@@ -90,6 +91,7 @@ app.add_middleware(
|
|||||||
|
|
||||||
@app.get("/")
|
@app.get("/")
|
||||||
def health_check():
|
def health_check():
|
||||||
|
# TODO: Add more comprehensive health checks including DB status
|
||||||
return {"ok": True, "service": "eamco_service"}
|
return {"ok": True, "service": "eamco_service"}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user