41 lines
1.8 KiB
Python
41 lines
1.8 KiB
Python
from fastapi import APIRouter
|
|
from schemas.ApiResponse import ApiResponse
|
|
from schemas.CreateSchemas import ClinicDoctorCreate
|
|
from schemas.UpdateSchemas import ClinicDoctorUpdate
|
|
from services.clinicDoctorsServices import ClinicDoctorsServices
|
|
from fastapi import Request
|
|
from utils.constants import DEFAULT_ORDER, DEFAULT_ORDER_BY, DEFAULT_PAGE, DEFAULT_LIMIT
|
|
|
|
router = APIRouter()
|
|
|
|
@router.get("/")
|
|
async def get_clinic_doctors(
|
|
req:Request,
|
|
limit:int= DEFAULT_LIMIT,
|
|
page:int = DEFAULT_PAGE,
|
|
search:str = "",
|
|
sort_by:str = DEFAULT_ORDER,
|
|
sort_order:str = DEFAULT_ORDER_BY
|
|
):
|
|
if page < 1:
|
|
page = 1
|
|
offset = (page - 1) * limit
|
|
user = req.state.user
|
|
clinic_id = user["created_clinics"][0]["id"]
|
|
clinic_doctors = await ClinicDoctorsServices().get_clinic_doctors(clinic_id, limit, offset, search, sort_by, sort_order)
|
|
return ApiResponse(data=clinic_doctors, message="Clinic doctors retrieved successfully")
|
|
|
|
@router.post("/")
|
|
async def create_clinic_doctor(req:Request, clinic_doctor: ClinicDoctorCreate):
|
|
await ClinicDoctorsServices().create_clinic_doctor(req.state.user, clinic_doctor)
|
|
return ApiResponse(data="OK", message="Clinic doctor created successfully")
|
|
|
|
@router.put("/{clinic_doctor_id}")
|
|
async def update_clinic_doctor(req:Request, clinic_doctor_id: int, clinic_doctor: ClinicDoctorUpdate):
|
|
await ClinicDoctorsServices().update_clinic_doctor(req.state.user, clinic_doctor_id, clinic_doctor)
|
|
return ApiResponse(data="OK", message="Clinic doctor updated successfully")
|
|
|
|
@router.delete("/{clinic_doctor_id}")
|
|
async def delete_clinic_doctor(clinic_doctor_id: int):
|
|
await ClinicDoctorsServices().delete_clinic_doctor(clinic_doctor_id)
|
|
return ApiResponse(data="OK", message="Clinic doctor deleted successfully") |