public CarRepresentation(Car c) { this.name = c.getName(); }
@Override public void delete(Car car) { repository.remove(car.getId()); } }
public List<CarRepresentation> all(Request request, Response response) { List<Car> cars = carRepository.all(); response.header("count", String.valueOf(cars.size())); response.type("application/json"); return cars.stream().map(c -> { CarRepresentation carRepresentation = new CarRepresentation(c); carRepresentation.addLink(self(request.url() + "/" + c.getId())); return carRepresentation; } ).collect(toList()); }
@GET public Response byId(@Auth User user, @PathParam("id") int carId) { Optional<Car> car = carRepository.byId(carId); return car.map(c -> { CarRepresentation carRepresentation = new CarRepresentation(c); carRepresentation.addLink(Link.self(uriInfo.getAbsolutePathBuilder().build(c.getId()).toString())); return Response.ok(carRepresentation).build(); }).orElse(Response.status(Response.Status.NOT_FOUND).build()); } }
@RequestMapping(value = "/{id}", method = RequestMethod.GET) public ResponseEntity<CarRepresentation> byId(@PathVariable("id") String carId) { Optional<Car> car = carRepository.byId(Integer.parseInt(carId)); return car.map(c -> { CarRepresentation rep = toCarRepresentation(c); return new ResponseEntity<>(rep, HttpStatus.OK); }) .orElse(new ResponseEntity<>(HttpStatus.NOT_FOUND)); }
@RequestMapping(method = RequestMethod.GET) public ResponseEntity<List<CarRepresentation>> allCars() { List<Car> cars = carRepository.all(); HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.set("total-count", String.valueOf(cars.size())); return new ResponseEntity<>(cars.stream().map(this::toCarRepresentation).collect(toList()), responseHeaders, HttpStatus.OK); }
public String createCar(Request request, Response response) { Car car; try { car = objectMapper.readValue(request.body(), Car.class); carRepository.save(car); response.header("Location", request.url() + "/" + car.getId()); response.status(201); } catch (IOException e) { response.status(400); } return ""; } }
public void all(RoutingContext routingContext) { List<Car> all = carRepository.all(); HttpServerResponse response = routingContext.response(); response.putHeader("content-type", "application/json") .putHeader("total-count", String.valueOf(all.size())) .end(encode(all.stream().map(car -> { CarRepresentation carRepresentation = new CarRepresentation(car); carRepresentation.addLink(self(routingContext.request().absoluteURI() + "/" + car.getId())); return carRepresentation; }).collect(toList()))); }
private CarRepresentation toCarRepresentation(Car c) { String carId = String.valueOf(c.getId()); CarRepresentation rep = new CarRepresentation(c); rep.add(linkTo(methodOn(CarsController.class).byId(carId)).withSelfRel()); return rep; }
public CarRepresentation(Car car) { this.name = car.getName(); }
public CarRepresentation byId(Request request, Response response) { Optional<Car> car = carRepository.byId(Integer.parseInt(request.params(":id"))); return car.map(c -> { response.type("application/json"); CarRepresentation carRepresentation = new CarRepresentation(c); carRepresentation.addLink(self(request.url())); return carRepresentation; } ).orElseGet(() -> { response.status(404); return null; }); }
@Get("json") public List<CarRepresentation> all() { List<io.github.cdelmas.spike.common.domain.Car> cars = carRepository.all(); getResponse().getHeaders().add("total-count", String.valueOf(cars.size())); return cars.stream().map(c -> { CarRepresentation carRepresentation = new CarRepresentation(c); carRepresentation.addLink(Link.self(new Reference(getReference()).addSegment(String.valueOf(c.getId())).toString())); return carRepresentation; }).collect(toList()); }
@RequestMapping(method = RequestMethod.POST, consumes = "application/json") public ResponseEntity<CarRepresentation> create(@RequestBody Car car) { carRepository.save(car); HttpHeaders responseHeaders = new HttpHeaders(); Link link = linkTo(methodOn(CarsController.class).byId(String.valueOf(car.getId()))).withSelfRel(); responseHeaders.set("Location", link.getHref()); return new ResponseEntity<>(responseHeaders, HttpStatus.CREATED); } }
public void create(RoutingContext routingContext) { Car car = Json.decodeValue(routingContext.getBodyAsString(), Car.class); carRepository.save(car); HttpServerResponse response = routingContext.response(); response.putHeader("Location", routingContext.request().absoluteURI() + "/" + car.getId()) .setStatusCode(201) .end(); } }