feat: navigate from root
[demos/example-siren] / provider / src / main / java / io / pactflow / example / sirenprovider / controllers / RootController.java
diff --git a/provider/src/main/java/io/pactflow/example/sirenprovider/controllers/RootController.java b/provider/src/main/java/io/pactflow/example/sirenprovider/controllers/RootController.java
new file mode 100644 (file)
index 0000000..ee649f4
--- /dev/null
@@ -0,0 +1,25 @@
+package io.pactflow.example.sirenprovider.controllers;
+
+import io.pactflow.example.sirenprovider.models.Order;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.hateoas.Link;
+import org.springframework.hateoas.RepresentationModel;
+import org.springframework.hateoas.server.EntityLinks;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class RootController {
+
+  static class Root extends RepresentationModel<Root> {}
+
+  @Autowired
+  private EntityLinks entityLinks;
+
+  @GetMapping("/")
+  public ResponseEntity<RepresentationModel<?>> orders() {
+    Link link = entityLinks.linkToCollectionResource(Order.class).withRel("orders");
+    return ResponseEntity.ok().body(new Root().add(link));
+  }
+}