fix: list api response

This commit is contained in:
deepvasoya 2025-05-14 15:39:19 +05:30
parent b6e390f77c
commit 287b6e5761
4 changed files with 31 additions and 7 deletions

View File

@ -6,6 +6,10 @@ from services.clinicDoctorsServices import ClinicDoctorsServices
router = APIRouter()
@router.get("/")
def get_clinic_doctors():
clinic_doctors = ClinicDoctorsServices().get_clinic_doctors()
return ApiResponse(data=clinic_doctors, message="Clinic doctors retrieved successfully")
@router.post("/")
def create_clinic_doctor(clinic_doctor: ClinicDoctorCreate):
@ -20,4 +24,4 @@ def update_clinic_doctor(clinic_doctor_id: int, clinic_doctor: ClinicDoctorUpdat
@router.delete("/{clinic_doctor_id}")
def delete_clinic_doctor(clinic_doctor_id: int):
ClinicDoctorsServices().delete_clinic_doctor(clinic_doctor_id)
return ApiResponse(data="OK", message="Clinic doctor deleted successfully")
return ApiResponse(data="OK", message="Clinic doctor deleted successfully")

View File

@ -4,12 +4,18 @@ from middleware.auth_dependency import auth_required
from services.userServices import UserServices
from schemas.ApiResponse import ApiResponse
from schemas.UpdateSchemas import UserUpdate
from utils.constants import DEFAULT_LIMIT, DEFAULT_PAGE
router = APIRouter()
@router.get("/")
async def get_users():
user = await UserServices().get_users()
async def get_users(limit:int = DEFAULT_LIMIT, page:int = DEFAULT_PAGE, search:str = ""):
if page == 0:
page = 1
offset = (page - 1) * limit
user = await UserServices().get_users(limit, offset, search)
return ApiResponse(
data=user,
message="User fetched successfully"

View File

@ -6,6 +6,7 @@ from models import ClinicDoctors
from sqlalchemy.orm import Session
from services.clinicServices import ClinicServices
from exceptions import ResourceNotFoundException
from interface.common_response import CommonResponse
class ClinicDoctorsServices:
def __init__(self):
@ -67,4 +68,13 @@ class ClinicDoctorsServices:
result[status.value] = count
return result
def get_clinic_doctors(self):
clinic_doctors = self.db.query(ClinicDoctors).all()
total = self.db.query(ClinicDoctors).count()
response = CommonResponse(data=[ClinicDoctorResponse(**clinic_doctor.__dict__.copy()) for clinic_doctor in clinic_doctors], total=total)
return response

View File

@ -9,6 +9,7 @@ from models import Clinics
from enums.enums import ClinicStatus, UserType
from schemas.UpdateSchemas import UserUpdate
from exceptions.unauthorized_exception import UnauthorizedException
from interface.common_response import CommonResponse
from utils.password_utils import hash_password
from schemas.CreateSchemas import UserCreate
from exceptions.resource_not_found_exception import ResourceNotFoundException
@ -131,11 +132,14 @@ class UserServices:
Users.userType.contains(search)
)
)
users = query.limit(limit).offset(offset).all()
user_response = [UserResponse(**user.__dict__.copy()) for user in users]
return user_response
users = query.limit(limit).offset(offset).all()
total = self.db.query(Users).count()
response = CommonResponse(data=[UserResponse(**user.__dict__.copy()) for user in users], total=total)
return response
async def get_user_by_email(self, email: str) -> UserResponse:
user = self.db.query(Users).filter(Users.email == email.lower()).first()