Coverage for src/app/services/registration_service.py: 100%

17 statements  

« prev     ^ index     » next       coverage.py v7.7.0, created at 2025-04-03 00:42 +0200

1 

2from usecases.registration_useCase import RegistrationUseCase 

3from ports.registration_port import RegistrationPort 

4from services.validation_service import ValidationService 

5from models.user_model import UserModel 

6 

7from flask_bcrypt import Bcrypt 

8 

9class RegistrationService(RegistrationUseCase): 

10 

11 def __init__(self, registration_port: RegistrationPort, validation_service: ValidationService, bcrypt: Bcrypt): 

12 self.bcrypt = bcrypt 

13 self.validation_service = validation_service 

14 self.registration_port = registration_port 

15 

16 def register(self, user_model : UserModel) -> bool: 

17 """ 

18 Register a new user. 

19  

20 Args: 

21 user_dto (UserModel): The user data transfer object. 

22  

23 Returns: 

24 bool: True if the user was registered successfully, False otherwise. 

25 """ 

26 try: 

27 self.validation_service.validate_registration(user_model) 

28 

29 user_model.set_password(self.bcrypt.generate_password_hash(user_model.get_password()).decode('utf-8')) 

30 

31 return self.registration_port.register(user_model) 

32 

33 except Exception as e: 

34 raise e