from database import get_db from services.jwtService import create_jwt_token from services.userServices import UserServices from utils.password_utils import verify_password from schemas.CreateSchemas import UserCreate from schemas.BaseSchemas import AuthBase from exceptions.unauthorized_exception import UnauthorizedException class AuthService: def __init__(self): self.user_service = UserServices() def login(self, data: AuthBase) -> str: # get user user = self.user_service.get_user_by_email(data.email) # verify password if not verify_password(data.password, user.password): raise UnauthorizedException("Invalid credentials") # remove password from user dict user_dict = user.__dict__.copy() user_dict.pop("password", None) # create token token = create_jwt_token(user_dict) return token def register(self, user_data: UserCreate): response = self.user_service.create_user(user_data) user = { "id": response.id, "username": response.username, "email": response.email, "clinicRole": response.clinicRole, "userType": response.userType, "mobile": response.mobile, "clinicId": response.created_clinics[0].id } token = create_jwt_token(user) return token