Class UserService
- All Implemented Interfaces:
UserServiceContract
UserService implementa um contratato do serviço do usuário UserServiceContract.
Ela fornece os métodos para gerenciar usuários, incluindo criação de um novo usuário, recuperação de um usuário pelo seu ID,
alteração da senha do usuário e alteração do nome de usuário.
Isso é feito por meio da interação com o repositório de usuários UserContractRepository, onde os dados do usuário são armazenados.
Os métodos implementados nesta classe realizam checagens de validação para garantir que os dados do usuário sejam válidos.
Se quaisquer dados inválidos forem fornecidos, como um ID de usuário, senha ou nome de usuário nulo ou em branco,
eles lançarão uma exceção UserServiceFailureException.
- Since:
- 1.0.0
- Author:
- diegoneves
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidchangePassword(String userId, String newPassword) Altera a senha do usuário especificado.voidchangeUserName(String userId, String newUsername) Altera o nome do usuário especificado.createUser(String username, String email, UserProfile userProfile, String password) Cria um novo usuário com os detalhes fornecidos e armazena no repositório de usuários.getUserByEmail(String userEmail) Método para obter detalhes do usuário por email.getUserById(String userId) Recupera um usuário pelo seu ID do repositório de usuários.private static voidvalidateUserId(String userId) Valida o identificador do usuário fornecido.
-
Field Details
-
INVALID_IDENTIFIER_ERROR_MESSAGE
- See Also:
-
INVALID_NEW_PASSWORD_MESSAGE
- See Also:
-
USER_NOT_FOUND_MESSAGE
- See Also:
-
USERNAME_INVALID_ERROR_MESSAGE
- See Also:
-
EMAIL_REQUIRED_ERROR_MESSAGE
- See Also:
-
userContractRepository
-
-
Constructor Details
-
Method Details
-
createUser
public UserContract createUser(String username, String email, UserProfile userProfile, String password) throws UserCreationFailureException Cria um novo usuário com os detalhes fornecidos e armazena no repositório de usuários.- Specified by:
createUserin interfaceUserServiceContract- Parameters:
username- O nome de usuário para o novo usuário.email- O email para o novo usuário.userProfile- O perfil do novo usuário.password- A senha para o novo usuário.- Returns:
- A instância de
UserContractque representa o usuário criado. - Throws:
UserCreationFailureException- se alguma informação fornecida for inválida.
-
getUserById
Recupera um usuário pelo seu ID do repositório de usuários.- Specified by:
getUserByIdin interfaceUserServiceContract- Parameters:
userId- O ID do usuário a ser recuperado.- Returns:
- A instância de
UserContractque representa o usuário recuperado. - Throws:
UserServiceFailureException- se o ID do usuário for nulo ou em branco.
-
validateUserId
Valida o identificador do usuário fornecido.Este método utiliza os utilitários fornecidos pelas classes
ValidationUtilseUuidUtilspara validar o identificador do usuário. A validação ocorre em dois passos:- Primeiro, este método verifica se o identificador do usuário fornecido não é nulo ou
vazio utilizando o método
checkNotNullAndNotEmptyOrThrowExceptionda classeValidationUtils. - Na sequência, valida se o identificador do usuário é um
UUIDválido através do métodoisValidUUIDda classeUuidUtils.
Se qualquer uma das validações falhar, este método lança uma exceção
UserServiceFailureException, que é uma exceção personalizada que estende aRuntimeException.- Parameters:
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,UserServiceFailureExceptionencapsula a exceção original (UuidUtilsException) dentro dela para fornecer informação contextual adicional quando o UUID não é válido.
- Primeiro, este método verifica se o identificador do usuário fornecido não é nulo ou
vazio utilizando o método
-
changePassword
Altera a senha do usuário especificado.- Specified by:
changePasswordin interfaceUserServiceContract- Parameters:
userId- O ID do usuário cuja senha será alterada.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.
-
changeUserName
Altera o nome do usuário especificado.- Specified by:
changeUserNamein interfaceUserServiceContract- Parameters:
userId- O ID do usuário cujo nome será alterado.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.
-
getUserByEmail
Description copied from interface:UserServiceContractMétodo para obter detalhes do usuário por email.Este método é usado quando precisamos encontrar um usuário especificamente pelo seu endereço de e-mail. Isso é útil, por exemplo, quando um usuário esquece seu nome de usuário e só pode fornecer um e-mail. Este método retorna um objeto
UserContractque contém todos os detalhes do usuário.É importante garantir que o e-mail fornecido para este método seja válido e existente na base de dados. Se o e-mail fornecido não estiver associado a nenhum usuário, este método retornará null.
- Specified by:
getUserByEmailin interfaceUserServiceContract- Parameters:
userEmail- O endereço de e-mail do usuário que está sendo procurado.- Returns:
UserContractUma instância deUserContractque contém os detalhes do usuário procurado. Se nenhum usuário for encontrado com o e-mail fornecido, este método retornará null.
-