Alguém conseguiu implementar esse mão na massa?
Para mim gerar falha no sistema.
O último código, me parece estar errado. E não tem a indicação do local certo de chamar o método.
Chamei no public Long salvarUsuario() da classe UsuarioService.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Alguém conseguiu implementar esse mão na massa?
Para mim gerar falha no sistema.
O último código, me parece estar errado. E não tem a indicação do local certo de chamar o método.
Chamei no public Long salvarUsuario() da classe UsuarioService.
Olá José! Tudo bem?
Pelo que você descreveu, parece que o problema pode estar na forma como o método está sendo chamado dentro do UsuarioService. Aqui estão algumas dicas que podem te ajudar:
Verifique o Método de Envio de E-mail: Certifique-se de que o método responsável por enviar o e-mail está corretamente implementado. Ele deve ser capaz de enviar e-mails sem erros. Isso geralmente envolve configurar corretamente o serviço de e-mail (SMTP) e garantir que as credenciais estejam corretas.
Local Correto para Chamar o Método: O método de envio de e-mail deve ser chamado após a geração da senha aleatória e após o usuário ser salvo no banco de dados. Isso garante que o e-mail seja enviado apenas quando o usuário já está cadastrado.
Exemplo Prático: Suponha que você tenha um método enviarEmailComSenha(String email, String senha) dentro do seu serviço de e-mail. Você pode chamá-lo logo após salvar o usuário, como no exemplo abaixo:
public Long salvarUsuario(Usuario usuario) {
// Lógica para salvar o usuário
Long userId = usuarioRepository.save(usuario).getId();
// Gerar senha aleatória
String senhaAleatoria = gerarSenhaAleatoria();
// Enviar e-mail com a senha
emailService.enviarEmailComSenha(usuario.getEmail(), senhaAleatoria);
return userId;
}
Espero que essas dicas ajudem a resolver o problema.