Coverage for src/app/services/authentication_service.py: 100%
18 statements
« prev ^ index » next coverage.py v7.7.0, created at 2025-04-03 00:42 +0200
« prev ^ index » next coverage.py v7.7.0, created at 2025-04-03 00:42 +0200
1from usecases.authentication_useCase import AuthenticationUseCase
2from ports.authentication_port import AuthenticationPort
3from models.user_model import UserModel
5from flask_bcrypt import Bcrypt
7class AuthenticationService(AuthenticationUseCase):
9 def __init__(self, authentication_port: AuthenticationPort, bcrypt: Bcrypt ):
10 self.authentication_port = authentication_port
11 self.bcrypt = bcrypt
14 def login(self, user_model: UserModel) -> UserModel:
15 """
16 Log in a user.
18 Args:
19 user_model (UserModel): The user model to log in.
21 Returns:
22 UserModel: The user model that was logged in.
23 """
24 try:
26 retrived_user = self.authentication_port.get_user_for_authentication(user_model)
28 if retrived_user is None:
29 raise ValueError("Credentials are not valid")
30 if not self.bcrypt.check_password_hash(retrived_user.get_password(), user_model.get_password()):
31 raise ValueError("Credentials are not valid")
33 return retrived_user
35 except Exception:
36 raise ValueError("Credentials are not valid")