Recomendação em Controladores
Opened this issue · 0 comments
GustavoBoaz commented
No documento UsuarioController.java:
- Adcionar método getAll
- Adcionar método getById
- Adcionar método putUsuario
- Colocar notação @Valid nos métodos ja criados autentication e post
exemplo:
@GetMapping("/all")
public ResponseEntity <List<Usuario>> getAll() {
return ResponseEntity.ok(repository.findAll());
}
@GetMapping("/{id}")
public ResponseEntity<Usuario> getById(@PathVariable long id) {
return repository.findById(id)
.map(resp -> ResponseEntity.ok(resp))
.orElse(ResponseEntity.notFound().build());
}
@PutMapping("/atualizar")
public ResponseEntity<Usuario> putUsuario(@Valid @RequestBody Usuario usuario){
return service.atualizarUsuario(usuario)
.map(resp -> ResponseEntity.status(HttpStatus.OK).body(resp))
.orElse(ResponseEntity.status(HttpStatus.BAD_REQUEST).build());
}
@PostMapping("/logar")
public ResponseEntity<UserLogin> autentication(@Valid @RequestBody Optional <UserLogin> user){
return usuarioService.Logar(user).map(resp -> ResponseEntity.ok(resp))
.orElse(ResponseEntity.status(HttpStatus.UNAUTHORIZED).build());
}
@PostMapping("/cadastrar")
public ResponseEntity<Usuario> post(@Valid @RequestBody Usuario usuario){
return ResponseEntity.status(HttpStatus.CREATED)
.body(usuarioService.CadastrarUsuario(usuario));
}
No documento TemaController.java:
- Colocar notação @Valid nos métodos ja criados post e put
- Adcionar retorno Bad Request no metodo put
- Recomento efetuar tratativa diferente no Delete
exemplo:
@PostMapping
public ResponseEntity<Tema> post(@Valid @RequestBody Tema tema){
return ResponseEntity.status(HttpStatus.CREATED)
.body(repository.save(tema));
}
@PutMapping
public ResponseEntity<Tema> put(@Valid @RequestBody Tema tema){
return repository.findById(tema.getId())
.map(resp -> ResponseEntity.status(HttpStatus.CREATED).body(repository.save(tema)))
.orElse(ResponseEntity.status(HttpStatus.BAD_REQUEST).build());
}
@ResponseStatus(HttpStatus.NO_CONTENT)
@DeleteMapping("/{id}")
public void delete(@PathVariable long id) {
Optional<Tema> tema = repository.findById(id);
if(tema.isEmpty())
throw new ResponseStatusException(HttpStatus.BAD_REQUEST);
repository.deleteById(id);
}
No documento PostagemController.java:
- Colocar notação @Valid nos métodos ja criados post e put
- Adcionar retorno Bad Request no metodo put
- Recomento efetuar tratativa diferente no Delete
- Arrumar notação CrossOrigin encima da classe
exemplo:
@PostMapping
public ResponseEntity<Postagem> post(@Valid @RequestBody Postagem postagem){
return ResponseEntity.status(HttpStatus.CREATED)
.body(repository.save(postagem));
}
@PutMapping
public ResponseEntity<Postagem> put(@Valid @RequestBody Postagem postagem){
return repository.findById(postagem.getId())
.map(resp -> ResponseEntity.status(HttpStatus.OK).body(repository.save(postagem)))
.orElse(ResponseEntity.status(HttpStatus.BAD_REQUEST).build());
}
@ResponseStatus(HttpStatus.NO_CONTENT)
@DeleteMapping("/{id}")
public void delete(@PathVariable long id) {
Optional<Postagem> post = repository.findById(id);
if(post.isEmpty())
throw new ResponseStatusException(HttpStatus.BAD_REQUEST);
repository.deleteById(id);
}
@CrossOrigin(value = "*", allowedHeaders = "*")