X-Git-Url: http://juplo.de/gitweb/?a=blobdiff_plain;f=provider%2Fsrc%2Fmain%2Fjava%2Fio%2Fpactflow%2Fexample%2Fsirenprovider%2Fcontrollers%2FOrderController.java;fp=provider%2Fsrc%2Fmain%2Fjava%2Fio%2Fpactflow%2Fexample%2Fsirenprovider%2Fcontrollers%2FOrderController.java;h=0000000000000000000000000000000000000000;hb=a4bee2f47209f4fbea2f4c30238fba75bed87e29;hp=d08e4432f3239c01fb3fb714fb356d25c0ccdf35;hpb=7069e647ced41430e028f3380598a3cf2f4ede9e;p=demos%2Fexample-siren diff --git a/provider/src/main/java/io/pactflow/example/sirenprovider/controllers/OrderController.java b/provider/src/main/java/io/pactflow/example/sirenprovider/controllers/OrderController.java deleted file mode 100644 index d08e443..0000000 --- a/provider/src/main/java/io/pactflow/example/sirenprovider/controllers/OrderController.java +++ /dev/null @@ -1,71 +0,0 @@ -package io.pactflow.example.sirenprovider.controllers; - -import io.pactflow.example.sirenprovider.models.Order; -import org.springframework.hateoas.CollectionModel; -import org.springframework.hateoas.EntityModel; -import org.springframework.hateoas.Link; -import org.springframework.hateoas.RepresentationModel; -import org.springframework.hateoas.server.ExposesResourceFor; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Random; - -import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.afford; -import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; -import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; - -@RestController -@ExposesResourceFor(Order.class) -@RequestMapping(value = "/orders") -public class OrderController { - - @GetMapping - public ResponseEntity> orders() { - Long id = Math.abs(new Random().nextLong()); - Order order = new Order(id); - Link selfLink = actions(order); - EntityModel model = EntityModel.of(order, selfLink); - RepresentationModel orders = CollectionModel.of(model); - orders.add(linkTo(methodOn(OrderController.class).orders()).withSelfRel()); - return ResponseEntity.ok(orders); - } - - @GetMapping(value = "/{id}") - public ResponseEntity> order(@PathVariable(value = "id", required = true) Long id) { - Order order = new Order(id); - Link selfLink = actions(order); - EntityModel model = EntityModel.of(order, selfLink); - return ResponseEntity.ok(model); - } - - @PutMapping("/{id}") - public EntityModel update(@PathVariable(value = "id", required = true) Long id, Order order) { - Link selfLink = actions(order); - return EntityModel.of(order, selfLink); - } - - private Link actions(Order order) { - return linkTo(methodOn(OrderController.class).order(order.getId())).withSelfRel() - .andAffordance(afford(methodOn(OrderController.class).update(order.getId(), null))) - .andAffordance(afford(methodOn(OrderController.class).delete(order.getId()))) - .andAffordance(afford(methodOn(OrderController.class).changeStatus(order.getId(), null))); - } - - @PutMapping("/{id}/status") - public EntityModel changeStatus(@PathVariable(value = "id", required = true) Long id, String status) { - Order order = new Order(id); - Link selfLink = actions(order); - return EntityModel.of(order, selfLink); - } - - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable(value = "id", required = true) Long id) { - return ResponseEntity.ok().build(); - } -}