Olá, Better!
Para resolver a primeira parte da sua dúvida, você pode adicionar uma verificação no método detalhar
para verificar se o destino com o nome informado existe no sistema. Se não existir, você pode retornar uma mensagem informando que o destino não foi encontrado. Você pode fazer isso da seguinte maneira:
@GetMapping("/{nome}")
public ResponseEntity detalhar(@PathVariable String nome){
var destinos = destinosRepository.getDestinoByNome(nome);
if (destinos.isEmpty()) {
return ResponseEntity.notFound().body("Destino não encontrado");
}
return ResponseEntity.ok(new DadosDetalhamentoDestinos(destinos));
}
Dessa forma, se o destino não for encontrado, será retornado um status 404 (Not Found) com a mensagem "Destino não encontrado".
Quanto à segunda parte da sua dúvida, para permitir que o usuário pesquise um nome independentemente de letras maiúsculas ou minúsculas, você pode converter o nome informado para um formato padrão antes de realizar a pesquisa. Por exemplo, você pode converter o nome para letras minúsculas usando o método toLowerCase()
da classe String
. Assim, você pode comparar o nome informado em letras minúsculas com os nomes armazenados no sistema, que também estarão em letras minúsculas. Veja um exemplo:
@GetMapping("/{nome}")
public ResponseEntity detalhar(@PathVariable String nome){
var nomePesquisado = nome.toLowerCase();
var destinos = destinosRepository.getDestinoByNome(nomePesquisado);
// Restante do código...
}
Dessa forma, se o usuário informar um nome com letras maiúsculas ou minúsculas, o nome será convertido para letras minúsculas antes de realizar a pesquisa.
Espero ter ajudado e bons estudos!