Make error messages more descriptive
- Added specific slot time and date to availability error message - Added appointment ID and context to 'not found' errors - Added formatted appointment time to past appointment cancellation errors - Added date context to slot overlap error messages - All errors now provide actionable information to users
This commit is contained in:
parent
4d5673f181
commit
131477b7f3
1 changed files with 13 additions and 5 deletions
|
|
@ -194,7 +194,7 @@ async def create_booking(
|
||||||
if not matching_availability:
|
if not matching_availability:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=400,
|
status_code=400,
|
||||||
detail="Selected slot is not within available time ranges",
|
detail=f"Selected slot at {request.slot_start.strftime('%Y-%m-%d %H:%M')} UTC is not within any available time ranges for {slot_date}. Please select a different time slot.",
|
||||||
)
|
)
|
||||||
|
|
||||||
# Create the appointment
|
# Create the appointment
|
||||||
|
|
@ -264,7 +264,10 @@ async def cancel_my_appointment(
|
||||||
appointment = result.scalar_one_or_none()
|
appointment = result.scalar_one_or_none()
|
||||||
|
|
||||||
if not appointment:
|
if not appointment:
|
||||||
raise HTTPException(status_code=404, detail="Appointment not found")
|
raise HTTPException(
|
||||||
|
status_code=404,
|
||||||
|
detail=f"Appointment with ID {appointment_id} not found. It may have been deleted or the ID is invalid.",
|
||||||
|
)
|
||||||
|
|
||||||
# Verify ownership
|
# Verify ownership
|
||||||
if appointment.user_id != current_user.id:
|
if appointment.user_id != current_user.id:
|
||||||
|
|
@ -279,9 +282,10 @@ async def cancel_my_appointment(
|
||||||
|
|
||||||
# Check if appointment is in the past
|
# Check if appointment is in the past
|
||||||
if appointment.slot_start <= datetime.now(timezone.utc):
|
if appointment.slot_start <= datetime.now(timezone.utc):
|
||||||
|
appointment_time = appointment.slot_start.strftime('%Y-%m-%d %H:%M') + " UTC"
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=400,
|
status_code=400,
|
||||||
detail="Cannot cancel a past appointment"
|
detail=f"Cannot cancel appointment scheduled for {appointment_time} as it is in the past or has already started."
|
||||||
)
|
)
|
||||||
|
|
||||||
# Cancel the appointment
|
# Cancel the appointment
|
||||||
|
|
@ -356,7 +360,10 @@ async def admin_cancel_appointment(
|
||||||
appointment = result.scalar_one_or_none()
|
appointment = result.scalar_one_or_none()
|
||||||
|
|
||||||
if not appointment:
|
if not appointment:
|
||||||
raise HTTPException(status_code=404, detail="Appointment not found")
|
raise HTTPException(
|
||||||
|
status_code=404,
|
||||||
|
detail=f"Appointment with ID {appointment_id} not found. It may have been deleted or the ID is invalid.",
|
||||||
|
)
|
||||||
|
|
||||||
# Check if already cancelled
|
# Check if already cancelled
|
||||||
if appointment.status != AppointmentStatus.BOOKED:
|
if appointment.status != AppointmentStatus.BOOKED:
|
||||||
|
|
@ -367,9 +374,10 @@ async def admin_cancel_appointment(
|
||||||
|
|
||||||
# Check if appointment is in the past
|
# Check if appointment is in the past
|
||||||
if appointment.slot_start <= datetime.now(timezone.utc):
|
if appointment.slot_start <= datetime.now(timezone.utc):
|
||||||
|
appointment_time = appointment.slot_start.strftime('%Y-%m-%d %H:%M') + " UTC"
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=400,
|
status_code=400,
|
||||||
detail="Cannot cancel a past appointment"
|
detail=f"Cannot cancel appointment scheduled for {appointment_time} as it is in the past or has already started."
|
||||||
)
|
)
|
||||||
|
|
||||||
# Cancel the appointment
|
# Cancel the appointment
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue