1616import javax .validation .Valid ;
1717import java .net .URI ;
1818import 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