ai-agent / endpoints_documentation.py
abdibrahem's picture
Inital commit
cdee10f
raw
history blame
6.53 kB
endpoints_documentation = {
"root": {
"path": "/",
"method": "GET",
"description": "API root endpoint",
"parameters": None,
"request_body": None,
"response": {"message": "Clinic Reservation API - Use /docs for documentation"}
},
"get_reservations": {
"path": "/reservations",
"method": "GET",
"description": "Get all reservations",
"parameters": None,
"request_body": None,
"response": {
"description": "List of all reservations",
"model": "List[Reservation]",
"filters": "Only returns reservations with status 'scheduled'"
}
},
"get_reservations_by_filters": {
"path": "/reservations/",
"method": "GET",
"description": "Get reservations filtered by patient ID and/or doctor name (only scheduled)",
"parameters": {
"patient_id": {
"type": "str",
"required": False,
"description": "Filter by patient ID"
},
"doctor_name": {
"type": "str",
"required": False,
"description": "Filter by doctor name (case-insensitive partial match)"
}
},
"request_body": None,
"response": {
"description": "List of matching scheduled reservations",
"model": "List[Reservation]",
"error": "404 if no scheduled reservations match criteria"
}
},
"create_reservation": {
"path": "/create-reservation",
"method": "POST",
"description": "Create a new reservation",
"parameters": None,
"request_body": {
"model": "CreateReservation",
"required_fields": {
"patient_id": "str",
"doctor_name": "str",
"date_time": "datetime like this 2023-10-16T19:00:00"
},
"optional_fields": {
"reason": "str (optional)"
}
},
"response": {
"description": "Created reservation with status 'scheduled'",
"model": "Reservation",
"error": "404 if doctor not found"
}
},
"reschedule_reservation": {
"path": "/reservations/reschedule",
"method": "PUT",
"description": "Reschedule an existing reservation",
"parameters": {
"doctor_name": {
"type": "str",
"required": True,
"description": "ID of the reservation to reschedule"
},
"new_date_time": {
"type": "str",
"required": True,
"description": "New date/time to reschedule to"
}
},
"response": {
"description": "Updated reservation with new date/time",
"model": "Reservation",
"error": "404 if reservation not found"
}
},
"cancel_reservation": {
"path": "/reservations/cancel",
"method": "PUT",
"description": "Cancel a reservation",
"parameters": {
"doctor_name": {
"type": "str",
"required": True,
"description": "ID of the reservation to cancel"
}
},
"request_body": None,
"response": {
"description": "Canceled reservation (status changed to 'canceled')",
"model": "Reservation",
"error": "404 if reservation not found"
}
},
"get_doctors": {
"path": "/doctors",
"method": "GET",
"description": "Get list of all available doctors",
"parameters": None,
"request_body": None,
"response": {
"description": "List of doctors with their specialties",
"model": "List[dict]",
"example": [
{"id": 1, "name": "Dr. Smith", "specialty": "General Medicine"}
]
}
},
"get_doctor_availability": {
"path": "/doctors/{doctor_id}/availability",
"method": "GET",
"description": "Get doctor's fake availability slots (30-min intervals from 9am-5pm)",
"parameters": {
"doctor_id": {
"type": "int",
"required": True,
"description": "ID of the doctor"
},
"date": {
"type": "str (YYYY-MM-DD)",
"required": False,
"description": "Date to check availability (default: today)"
}
},
"request_body": None,
"response": {
"description": "Doctor's availability slots with random availability",
"model": "dict",
"example": {
"doctor_id": 1,
"date": "2023-10-15",
"slots": [
{
"start": "2023-10-15T09:00:00",
"end": "2023-10-15T09:30:00",
"available": True
}
]
},
"error": "404 if doctor not found"
}
},
"get_patients": {
"path": "/patients",
"method": "GET",
"description": "Get list of all patients",
"parameters": None,
"request_body": None,
"response": {
"description": "List of patients with contact information",
"model": "List[Patient]",
"example": [
{"id": "uuid-123", "name": "John Doe", "phone": "555-0101", "email": "john@example.com"}
]
}
},
"get_patient_reservations": {
"path": "/patients/reservations",
"method": "GET",
"description": "Get my all reservations",
"parameters": {
"patient_id": {
"type": "str",
"required": True,
"description": "ID of the patient"
}
},
"request_body": None,
"response": {
"description": "List of patient's reservations (all statuses)",
"model": "List[Reservation]",
"note": "Returns empty list if no reservations found (no 404 error)"
}
},
"get_hospitals": {
"path": "/hospitals",
"method": "GET",
"description": "Get list of all hospitals and thier working hours (start time and end time) and location",
"parameters": None,
}
}