Coverage for src/app/services/validation_service.py: 100%
10 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 ports.validation_port import ValidationPort
2from models.user_model import UserModel
4class ValidationService:
5 """
6 The ValidationService class is responsible for validating user data.
7 """
9 def __init__(self, validation_port: ValidationPort):
10 self.validation_port = validation_port
12 def validate_registration(self, user_model: UserModel) -> None:
13 """
14 Validates the user registration based on database constraints.
16 Args:
17 user_model (UserModel): The user model to validate.
19 Raises:
20 ValueError: If email or username already exists.
21 """
22 # Check if username already exists
23 if self.validation_port.get_user_by_username(user_model.get_username()):
24 raise ValueError("Username is already taken.")
26 # Check if email already exists
27 if self.validation_port.get_user_by_email(user_model.get_email()):
28 raise ValueError("Email is already in use.")