38 lines
1.7 KiB
Python
38 lines
1.7 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(
|
|
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
|
|
clinic_doctors = await ClinicDoctorsServices().get_clinic_doctors(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") |