Skip to content

Commit

Permalink
feat/i11 ♻️ Adiciona método de validação de ID e ajusta formatação
Browse files Browse the repository at this point in the history
Um novo método privado foi adicionado à classe UserService para validar o ID do usuário. Este método é utilizado em vários pontos do código para garantir que o ID fornecido é válido antes de realizar outras operações. Além disso, foram feitas pequenas alterações de formatação para alinhar melhor os parâmetros dos métodos.
  • Loading branch information
diegosneves committed Jun 17, 2024
1 parent 03c8a91 commit 3612f0b
Showing 1 changed file with 29 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@
* eles lançarão uma exceção {@link UserServiceFailureException}.
*
* @author diegoneves
* @since 1.0.0
* @see UserServiceContract
* @see UserRepository
* @see UserServiceFailureException
* @since 1.0.0
*/
public class UserService implements UserServiceContract {

Expand All @@ -42,10 +42,10 @@ public UserService(UserRepository userRepository) {
/**
* Cria um novo usuário com os detalhes fornecidos e armazena no repositório de usuários.
*
* @param username O nome de usuário para o novo usuário.
* @param email O email para o novo usuário.
* @param username O nome de usuário para o novo usuário.
* @param email O email para o novo usuário.
* @param userProfile O perfil do novo usuário.
* @param password A senha para o novo usuário.
* @param password A senha para o novo usuário.
* @return A instância de {@link UserContract} que representa o usuário criado.
* @throws UserCreationFailureException se alguma informação fornecida for inválida.
*/
Expand All @@ -68,6 +68,27 @@ public UserContract getUser(String userId) {
return this.userRepository.findById(userId);
}

/**
* Valida o identificador do usuário fornecido.
*
* <p>Este método utiliza os utilitários fornecidos pelas classes {@link ValidationUtils} e
* {@link UuidUtils} para validar o identificador do usuário. A validação ocorre em dois passos:</p>
*
* <ul>
* <li>Primeiro, este método verifica se o identificador do usuário fornecido não é nulo ou
* vazio utilizando o método {@code checkNotNullAndNotEmptyOrThrowException} da classe {@link ValidationUtils}.</li>
* <li>Na sequência, valida se o identificador do usuário é um {@link java.util.UUID UUID} válido através do método
* {@code isValidUUID} da classe {@link UuidUtils}.</li>
* </ul>
*
* <p>Se qualquer uma das validações falhar, este método lança uma exceção {@link UserServiceFailureException},
* que é uma exceção personalizada que estende a {@link RuntimeException}.</p>
*
* @param userId O identificador do usuário a ser validado.
* @throws UserServiceFailureException Se o identificador do usuário for nulo, vazio ou não for um UUID válido.
* Aqui, {@link UserServiceFailureException} encapsula a exceção original ({@link UuidUtilsException}) dentro dela para fornecer
* informação contextual adicional quando o UUID não é válido.
*/
private static void validateUserId(String userId) throws UserServiceFailureException {
ValidationUtils.checkNotNullAndNotEmptyOrThrowException(userId, INVALID_IDENTIFIER_ERROR_MESSAGE, UserServiceFailureException.class);
try {
Expand All @@ -80,15 +101,14 @@ private static void validateUserId(String userId) throws UserServiceFailureExcep
/**
* Altera a senha do usuário especificado.
*
* @param userId O ID do usuário cuja senha será alterada.
* @param userId O ID do usuário cuja senha será alterada.
* @param newPassword A nova senha para o usuário.
* @throws UserServiceFailureException se o ID do usuário ou a nova senha forem nulos ou em branco, ou se o usuário não for encontrado.
*/
@Override
public void changePassword(String userId, String newPassword) {
validateUserId(userId);
ValidationUtils.checkNotNullAndNotEmptyOrThrowException(newPassword, INVALID_NEW_PASSWORD_MESSAGE, UserServiceFailureException.class);
UserContract retrievedUser = this.userRepository.findById(userId);
UserContract retrievedUser = this.getUser(userId);
ValidationUtils.checkNotNullAndNotEmptyOrThrowException(retrievedUser, USER_NOT_FOUND_MESSAGE, UserServiceFailureException.class);
retrievedUser.changeUserPassword(newPassword);
this.userRepository.save(retrievedUser);
Expand All @@ -97,15 +117,14 @@ public void changePassword(String userId, String newPassword) {
/**
* Altera o nome do usuário especificado.
*
* @param userId O ID do usuário cujo nome será alterado.
* @param userId O ID do usuário cujo nome será alterado.
* @param newUsername O novo nome de usuário para o usuário.
* @throws UserServiceFailureException se o ID do usuário ou o novo nome de usuário forem nulos ou em branco, ou se o usuário não for encontrado.
*/
@Override
public void changeUserName(String userId, String newUsername) {
validateUserId(userId);
ValidationUtils.checkNotNullAndNotEmptyOrThrowException(newUsername, USERNAME_INVALID_ERROR_MESSAGE, UserServiceFailureException.class);
UserContract retrievedUser = this.userRepository.findById(userId);
UserContract retrievedUser = this.getUser(userId);
ValidationUtils.checkNotNullAndNotEmptyOrThrowException(retrievedUser, USER_NOT_FOUND_MESSAGE, UserServiceFailureException.class);
retrievedUser.changeUserName(newUsername);
this.userRepository.save(retrievedUser);
Expand Down

0 comments on commit 3612f0b

Please sign in to comment.