Skip to content

Commit 455185c

Browse files
Configurado o retorno 404 para que o usuario final não receba stacktrace
1 parent 13830bf commit 455185c

File tree

1 file changed

+25
-6
lines changed

1 file changed

+25
-6
lines changed

testeSantanderWay/src/main/java/br/com/testesantanderway/controller/LoginCliente.java

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import javax.validation.Valid;
1717
import java.net.URI;
1818
import java.util.List;
19+
import java.util.Optional;
1920

2021
@RestController
2122
@RequestMapping("/clientes")
@@ -25,7 +26,7 @@ public class LoginCliente {
2526

2627
@GetMapping
2728
public List<ClienteDTO> dadosLoginCliente(String nome) {
28-
if (nome == null) {
29+
if (nome == null || nome.isEmpty()) {
2930
Iterable<Cliente> clientes = clienteRepository.findAll();
3031

3132
return ClienteDTO.converter(clientes);
@@ -46,16 +47,34 @@ public ResponseEntity<ClienteDTO> cadastrarCliente(@RequestBody @Valid ClienteFo
4647
}
4748

4849
@GetMapping("/{id}")
49-
public DetalheClienteDTO detalhe(@PathVariable String id) {
50-
Cliente cliente = clienteRepository.findById(id).orElseThrow(() -> new RuntimeException("Não encontrado"));
50+
public ResponseEntity<DetalheClienteDTO> detalhe(@PathVariable String id) {
51+
Optional<Cliente> cliente = clienteRepository.findById(id);
52+
if (cliente.isPresent()) {
53+
return ResponseEntity.ok(new DetalheClienteDTO(cliente.get()));
54+
}
5155

52-
return new DetalheClienteDTO(cliente);
56+
return ResponseEntity.notFound().build();
5357
}
5458

5559
@PutMapping("/{id}")
5660
public ResponseEntity<ClienteDTO> atualizar(@PathVariable String id, @RequestBody @Valid AtualizacaoClienteForm form) {
57-
Cliente cliente = form.atualizar(id, clienteRepository);
61+
Optional<Cliente> optional = clienteRepository.findById(id);
62+
if (optional.isPresent()) {
63+
Cliente cliente = form.atualizar(id, clienteRepository);
64+
return ResponseEntity.ok(new ClienteDTO(cliente));
65+
}
66+
67+
return ResponseEntity.notFound().build();
68+
}
69+
70+
@DeleteMapping("/{id}")
71+
public ResponseEntity<?> remover(@PathVariable String id) {
72+
Optional<Cliente> optional = clienteRepository.findById(id);
73+
if (optional.isPresent()) {
74+
clienteRepository.deleteById(id);
75+
return ResponseEntity.ok().build();
76+
}
5877

59-
return ResponseEntity.ok(new ClienteDTO(cliente));
78+
return ResponseEntity.notFound().build();
6079
}
6180
}

0 commit comments

Comments
 (0)