health-apps-backend/services/authService.py

42 lines
1.4 KiB
Python

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