31 lines
1019 B
Python
31 lines
1019 B
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 exceptions.unauthorized_exception import UnauthorizedException
|
|
|
|
class AuthService:
|
|
def __init__(self):
|
|
self.user_service = UserServices()
|
|
|
|
async def login(self, email, password) -> str:
|
|
|
|
# get user
|
|
user = await self.user_service.get_user_by_email(email)
|
|
|
|
# verify password
|
|
if not verify_password(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
|
|
|
|
async def register(self, user_data: UserCreate) -> None:
|
|
await self.user_service.create_user(user_data)
|
|
return |