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

1from usecases.authentication_useCase import AuthenticationUseCase 

2from ports.authentication_port import AuthenticationPort 

3from models.user_model import UserModel 

4 

5from flask_bcrypt import Bcrypt 

6 

7class AuthenticationService(AuthenticationUseCase): 

8 

9 def __init__(self, authentication_port: AuthenticationPort, bcrypt: Bcrypt ): 

10 self.authentication_port = authentication_port 

11 self.bcrypt = bcrypt 

12 

13 

14 def login(self, user_model: UserModel) -> UserModel: 

15 """ 

16 Log in a user. 

17 

18 Args: 

19 user_model (UserModel): The user model to log in. 

20 

21 Returns: 

22 UserModel: The user model that was logged in. 

23 """ 

24 try: 

25 

26 retrived_user = self.authentication_port.get_user_for_authentication(user_model) 

27 

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") 

32 

33 return retrived_user 

34 

35 except Exception: 

36 raise ValueError("Credentials are not valid") 

37 

38 

39 

40 

41 

42 

43