diff --git a/src/main/kotlin/mate/academy/exception/PasswordValidationException.kt b/src/main/kotlin/mate/academy/exception/PasswordValidationException.kt index 381c2e8..614ad1a 100644 --- a/src/main/kotlin/mate/academy/exception/PasswordValidationException.kt +++ b/src/main/kotlin/mate/academy/exception/PasswordValidationException.kt @@ -1,3 +1,3 @@ package mate.academy.exception -// Provide your code here for PasswordValidationException class +class PasswordValidationException(message: String) : Exception(message) diff --git a/src/main/kotlin/mate/academy/service/PasswordValidator.kt b/src/main/kotlin/mate/academy/service/PasswordValidator.kt index d50415c..e2a725f 100644 --- a/src/main/kotlin/mate/academy/service/PasswordValidator.kt +++ b/src/main/kotlin/mate/academy/service/PasswordValidator.kt @@ -1,8 +1,13 @@ package mate.academy.service -// This class will validate password requirements +import mate.academy.exception.PasswordValidationException + +const val PASSWORD_MIN_LENGTH = 10 + class PasswordValidator { fun validate(password: String, repeatPassword: String) { - // write your code here + if (password != repeatPassword || password.length < PASSWORD_MIN_LENGTH) { + throw PasswordValidationException("Wrong passwords") + } } } diff --git a/src/main/kotlin/mate/academy/service/UserService.kt b/src/main/kotlin/mate/academy/service/UserService.kt index f0b1232..c2d5de2 100644 --- a/src/main/kotlin/mate/academy/service/UserService.kt +++ b/src/main/kotlin/mate/academy/service/UserService.kt @@ -1,9 +1,11 @@ package mate.academy.service +import mate.academy.exception.PasswordValidationException import mate.academy.model.User // This class represents a user service with user registration functionality class UserService { + val validator = PasswordValidator() fun saveUser(user: User) : String { // This is where you would typically save the user to a database @@ -11,6 +13,12 @@ class UserService { } fun registerUser(username: String, password: String, repeatPassword: String) : String { - + try { + validator.validate(password, repeatPassword) + val user = User(username, password) + return saveUser(user) + } catch (_: PasswordValidationException) { + return "Your passwords are incorrect. Try again." + } } }