juliamontenegro/BlogPessoal

Recomendação em Controladores

Opened this issue · 0 comments

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 = "*")