Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
package mate.academy.exception

import java.lang.Exception
// Provide your code here for PasswordValidationException class
public class PasswordValidationException(message: String) : Exception(message)
7 changes: 7 additions & 0 deletions src/main/kotlin/mate/academy/service/PasswordValidator.kt
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
package mate.academy.service

import mate.academy.exception.PasswordValidationException

const val MINIMUM_LEN_OF_PASSWORD: Int = 10
// This class will validate password requirements
class PasswordValidator {
fun validate(password: String, repeatPassword: String) {
// write your code here
if (password.length < MINIMUM_LEN_OF_PASSWORD
|| password != repeatPassword) {
throw PasswordValidationException("Wrong passwords")
}
}
}
14 changes: 13 additions & 1 deletion src/main/kotlin/mate/academy/service/UserService.kt
Original file line number Diff line number Diff line change
@@ -1,16 +1,28 @@
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 passwordValidator: PasswordValidator = PasswordValidator()

fun saveUser(user: User) : String {
// This is where you would typically save the user to a database
return "User ${user.username} saved successfully."
}

fun registerUser(username: String, password: String, repeatPassword: String) : String {
fun registerUser(
username: String,
password: String,
repeatPassword: String
): String {
try {
passwordValidator.validate(password, repeatPassword)
} catch (ex: PasswordValidationException) {
return "Your passwords are incorrect. Try again."
}
return saveUser(User(username, password))

}
}
Loading