feat: staff management apis

This commit is contained in:
2025-05-21 15:59:33 +05:30
parent 7cae614e37
commit 9c39d369c1
13 changed files with 360 additions and 21 deletions
+19 -1
View File
@@ -1,8 +1,11 @@
from fastapi import APIRouter, Request, status
from fastapi import APIRouter, Request
from services.clinicServices import ClinicServices
from schemas.UpdateSchemas import ClinicStatusUpdate
from schemas.ApiResponse import ApiResponse
from schemas.BaseSchemas import CreateSuperAdmin, ResetPasswordBase
from services.authService import AuthService
from utils.constants import DEFAULT_LIMIT, DEFAULT_PAGE
router = APIRouter()
@@ -11,3 +14,18 @@ router = APIRouter()
def update_clinic_status(req:Request, data: ClinicStatusUpdate):
response = ClinicServices().update_clinic_status(req.state.user, data.clinic_id, data.status, data.documentStatus, data.rejection_reason)
return ApiResponse(data=response, message="Clinic status updated successfully")
@router.post("/user")
def create_user(req:Request, user_data: CreateSuperAdmin):
AuthService().create_super_admin(req.state.user, user_data)
return ApiResponse(data="OK", message="User created successfully")
@router.get("/")
def get_users(req:Request, limit:int = DEFAULT_LIMIT, page:int = DEFAULT_PAGE, search:str = ""):
if page < 1:
page = 1
offset = (page - 1) * limit
users = AuthService().get_admins(req.state.user, limit, offset, search)
return ApiResponse(data=users, message="Users retrieved successfully")
+12 -1
View File
@@ -2,7 +2,7 @@ from fastapi import APIRouter, BackgroundTasks
from services.authService import AuthService
from schemas.CreateSchemas import UserCreate
from schemas.ApiResponse import ApiResponse
from schemas.BaseSchemas import AuthBase, AuthOTP
from schemas.BaseSchemas import AuthBase, AuthOTP, ResetPasswordBase
from services.clinicServices import ClinicServices
from http import HTTPStatus
@@ -34,6 +34,17 @@ def get_latest_clinic_id():
)
@router.post('/admin/forget-password')
def forget_password(email: str):
AuthService().forget_password(email)
return ApiResponse(data="OK", message="Password reset email sent successfully")
@router.post('/admin/reset-password')
def reset_password(data: ResetPasswordBase):
AuthService().reset_password(data.token, data.password)
return ApiResponse(data="OK", message="Password reset successfully")
@router.post("/send-otp")
def send_otp(email: str):
AuthService().send_otp(email)