feat: clinic and user table change
feat: centralized db error handler fix: api responses
This commit is contained in:
+1
-2
@@ -27,8 +27,7 @@ api_router.include_router(
|
||||
|
||||
api_router.include_router(auth.router, prefix="/auth", tags=["auth"])
|
||||
|
||||
api_router.include_router(s3.router, dependencies=[Depends(auth_required)],
|
||||
prefix="/s3", tags=["s3"])
|
||||
api_router.include_router(s3.router, prefix="/s3", tags=["s3"])
|
||||
|
||||
api_router.include_router(users.router, prefix="/users", tags=["users"], dependencies=[Depends(auth_required)])
|
||||
|
||||
|
||||
@@ -2,12 +2,13 @@ from fastapi import APIRouter
|
||||
from services.authService import AuthService
|
||||
from schemas.CreateSchemas import UserCreate
|
||||
from schemas.ApiResponse import ApiResponse
|
||||
from schemas.BaseSchemas import AuthBase
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@router.post("/login")
|
||||
async def login(email: str, password: str):
|
||||
token = await AuthService().login(email, password)
|
||||
def login(data: AuthBase):
|
||||
token = AuthService().login(data)
|
||||
return ApiResponse(
|
||||
data=token,
|
||||
message="Login successful"
|
||||
@@ -15,9 +16,9 @@ async def login(email: str, password: str):
|
||||
|
||||
|
||||
@router.post("/register")
|
||||
async def register(user_data: UserCreate):
|
||||
await AuthService().register(user_data)
|
||||
def register(user_data: UserCreate):
|
||||
token = AuthService().register(user_data)
|
||||
return ApiResponse(
|
||||
data="OK",
|
||||
data=token,
|
||||
message="User registered successfully"
|
||||
)
|
||||
@@ -24,13 +24,17 @@ async def get_clinics(
|
||||
skip: int = DEFAULT_SKIP, limit: int = DEFAULT_LIMIT
|
||||
):
|
||||
clinics = ClinicServices().get_clinics(skip, limit)
|
||||
return ApiResponse(data=clinics, message="Clinics retrieved successfully", status_code=status.HTTP_200_OK)
|
||||
return ApiResponse(data=clinics, message="Clinics retrieved successfully" )
|
||||
|
||||
@router.get("/latest-id")
|
||||
async def get_latest_clinic_id():
|
||||
clinic_id = ClinicServices().get_latest_clinic_id()
|
||||
return ApiResponse(data=clinic_id, message="Latest clinic ID 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", status_code=status.HTTP_200_OK)
|
||||
return ApiResponse(data=clinic, message="Clinic retrieved successfully")
|
||||
|
||||
|
||||
@router.put("/{clinic_id}", response_model=Clinic)
|
||||
@@ -38,7 +42,7 @@ async def update_clinic(
|
||||
clinic_id: int, clinic: ClinicUpdate
|
||||
):
|
||||
clinic = ClinicServices().update_clinic(clinic_id, clinic)
|
||||
return ApiResponse(data=clinic, message="Clinic updated successfully", status_code=status.HTTP_200_OK)
|
||||
return ApiResponse(data=clinic, message="Clinic updated successfully")
|
||||
|
||||
|
||||
@router.delete("/{clinic_id}", status_code=status.HTTP_204_NO_CONTENT)
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
from fastapi import APIRouter, status
|
||||
from fastapi import Request
|
||||
from services.s3Service import upload_file as upload_file_service
|
||||
from enums.enums import S3FolderNameEnum
|
||||
from typing import Optional
|
||||
|
||||
from schemas.ApiResponse import ApiResponse
|
||||
from schemas.CreateSchemas import S3Create
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@router.post("/", status_code=status.HTTP_200_OK)
|
||||
async def upload_file(request: Request, folder: S3FolderNameEnum, file_name: str, clinic_id: Optional[str] = None):
|
||||
userId = request.state.user["id"]
|
||||
resp = await upload_file_service(userId, folder, file_name, clinic_id)
|
||||
return ApiResponse(data=resp, message="File uploaded successfully")
|
||||
@router.post("/")
|
||||
def upload_file(data:S3Create):
|
||||
try:
|
||||
resp = upload_file_service(data.folder, data.file_name)
|
||||
return ApiResponse(data=resp, message="File uploaded successfully")
|
||||
except Exception as e:
|
||||
logger.error(f"Error uploading file: {str(e)}")
|
||||
raise e
|
||||
|
||||
+21
-17
@@ -9,12 +9,12 @@ from utils.constants import DEFAULT_LIMIT, DEFAULT_PAGE
|
||||
router = APIRouter()
|
||||
|
||||
@router.get("/")
|
||||
async def get_users(limit:int = DEFAULT_LIMIT, page:int = DEFAULT_PAGE, search:str = ""):
|
||||
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)
|
||||
user = UserServices().get_users(limit, offset, search)
|
||||
|
||||
return ApiResponse(
|
||||
data=user,
|
||||
@@ -22,43 +22,47 @@ async def get_users(limit:int = DEFAULT_LIMIT, page:int = DEFAULT_PAGE, search:s
|
||||
)
|
||||
|
||||
@router.get("/me")
|
||||
async def get_user(request: Request):
|
||||
user_id = request.state.user["id"]
|
||||
user = await UserServices().get_user(user_id)
|
||||
return ApiResponse(
|
||||
data=user,
|
||||
message="User fetched successfully"
|
||||
)
|
||||
def get_user(request: Request):
|
||||
try:
|
||||
user_id = request.state.user["id"]
|
||||
user = UserServices().get_user(user_id)
|
||||
return ApiResponse(
|
||||
data=user,
|
||||
message="User fetched successfully"
|
||||
)
|
||||
except Exception as e:
|
||||
logger.error(f"Error getting user: {str(e)}")
|
||||
raise e
|
||||
|
||||
@router.get("/{user_id}")
|
||||
async def get_user(request: Request, user_id: int):
|
||||
user = await UserServices().get_user(user_id)
|
||||
def get_user(request: Request, user_id: int):
|
||||
user = UserServices().get_user(user_id)
|
||||
return ApiResponse(
|
||||
data=user,
|
||||
message="User fetched successfully"
|
||||
)
|
||||
|
||||
@router.delete("/")
|
||||
async def delete_user(request: Request):
|
||||
def delete_user(request: Request):
|
||||
user_id = request.state.user["id"]
|
||||
await UserServices().delete_user(user_id)
|
||||
UserServices().delete_user(user_id)
|
||||
return ApiResponse(
|
||||
data="OK",
|
||||
message="User deleted successfully"
|
||||
)
|
||||
|
||||
@router.put("/")
|
||||
async def update_user(request: Request, user_data: UserUpdate):
|
||||
def update_user(request: Request, user_data: UserUpdate):
|
||||
user_id = request.state.user["id"]
|
||||
user = await UserServices().update_user(user_id, user_data)
|
||||
user = UserServices().update_user(user_id, user_data)
|
||||
return ApiResponse(
|
||||
data=user,
|
||||
message="User updated successfully"
|
||||
)
|
||||
|
||||
@router.put("/{user_id}")
|
||||
async def update_user(request: Request, user_id: int, user_data: UserUpdate):
|
||||
user = await UserServices().update_user(user_id, user_data)
|
||||
def update_user(request: Request, user_id: int, user_data: UserUpdate):
|
||||
user = UserServices().update_user(user_id, user_data)
|
||||
return ApiResponse(
|
||||
data=user,
|
||||
message="User updated successfully"
|
||||
|
||||
Reference in New Issue
Block a user