health-apps-backend/apis/endpoints/clinics.py

56 lines
1.9 KiB
Python

from typing import List, Literal, Union
from fastapi import APIRouter, status, Request
# schemas
from schemas.ResponseSchemas import Clinic
from schemas.UpdateSchemas import ClinicUpdate
# services
from services.clinicServices import ClinicServices
# Constants
from schemas.ApiResponse import ApiResponse
from interface.common_response import CommonResponse
from schemas.BaseSchemas import ClinicOffersBase
from utils.constants import DEFAULT_PAGE, DEFAULT_SKIP, DEFAULT_LIMIT
router = APIRouter()
@router.get("/")
async def get_clinics(
req:Request,
page: int = DEFAULT_PAGE,
limit: int = DEFAULT_LIMIT,
filter_type: Union[Literal["UNREGISTERED"], Literal["REGISTERED"]] = "UNREGISTERED",
search:str = ""
):
if page < 1:
page = 1
offset = (page - 1) * limit
clinics = ClinicServices().get_clinics(req.state.user, limit, offset, filter_type, search)
return ApiResponse(data=clinics, message="Clinics retrieved successfully" )
@router.get("/verified-files/{clinic_id}")
async def get_verified_files(clinic_id: int):
clinic = ClinicServices().get_clinic_by_id(clinic_id)
return ApiResponse(data=clinic, message="Clinic retrieved successfully")
@router.get("/{clinic_id}")
async def get_clinic(clinic_id: int):
clinic = ClinicServices().get_clinic_by_id(clinic_id)
return ApiResponse(data=clinic, message="Clinic retrieved successfully")
@router.put("/{clinic_id}")
async def update_clinic(
req:Request,
clinic_id: int, clinic: ClinicUpdate
):
clinic = ClinicServices().update_clinic(req.state.user, clinic_id, clinic)
return ApiResponse(data=clinic, message="Clinic updated successfully")
@router.delete("/{clinic_id}", status_code=status.HTTP_204_NO_CONTENT)
async def delete_clinic(clinic_id: int):
ClinicServices().delete_clinic(clinic_id)
return ApiResponse(data="OK", message="Clinic deleted successfully")