juliasobral / blogPessoal

Atividade Java/Spring
0 stars 0 forks source link

Recomendação em Controladores #3

Open GustavoBoaz opened 3 years ago

GustavoBoaz commented 3 years ago

No documento UsuarioController.java:

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());
}

No documento TemaController.java:

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:

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