Skip to content

Instantly share code, notes, and snippets.

@AntonioMontanha
Created February 8, 2018 14:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AntonioMontanha/efa987d556d41776397dbb6aa3b7a4b7 to your computer and use it in GitHub Desktop.
Save AntonioMontanha/efa987d556d41776397dbb6aa3b7a4b7 to your computer and use it in GitHub Desktop.
Controlador do Gerenciador de Viagens
package com.montanha.gerenciador.controller;
import java.net.URI;
import java.util.List;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
import com.montanha.gerenciador.dtos.ViagemDto;
import com.montanha.gerenciador.entities.Viagem;
import com.montanha.gerenciador.responses.Response;
import com.montanha.gerenciador.services.ViagemServices;
@RestController
@RequestMapping("/api/viagens")
public class GerenciadorViagemController {
@Autowired
private ViagemServices viagemService;
@PostMapping(path = "/new")
public ResponseEntity<Response<Viagem>> cadastrar(@Valid @RequestBody ViagemDto viagemDto, BindingResult result) {
Response<Viagem> response = new Response<Viagem>();
if (result.hasErrors()) {
result.getAllErrors().forEach(error -> response.getErrors().add(error.getDefaultMessage()));
return ResponseEntity.badRequest().body(response);
}
Viagem viagemSalva = this.viagemService.salvar(viagemDto);
URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}").buildAndExpand(viagemDto.getId())
.toUri();
response.setData(viagemSalva);
return ResponseEntity.created(location).body(response);
}
@GetMapping
public ResponseEntity<List<Viagem>> listar() {
List<Viagem> viagens = viagemService.listar();
return ResponseEntity.status(HttpStatus.OK).body(viagens);
}
@GetMapping(path = "/{id}")
public ResponseEntity<Response<Viagem>> buscar(@PathVariable("id") Long id) {
Viagem viagem = viagemService.buscar(id);
Response<Viagem> response = new Response<Viagem>();
response.setData(viagem);
return ResponseEntity.status(HttpStatus.OK).body(response);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment