Die App führt die Berechnung aus
[demos/kafka/training] / src / main / java / de / juplo / kafka / ApplicationController.java
diff --git a/src/main/java/de/juplo/kafka/ApplicationController.java b/src/main/java/de/juplo/kafka/ApplicationController.java
new file mode 100644 (file)
index 0000000..79d42e9
--- /dev/null
@@ -0,0 +1,36 @@
+package de.juplo.kafka;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+
+@RestController
+@RequiredArgsConstructor
+public class ApplicationController
+{
+  private final AdderBusinessLogic adder;
+
+
+  @GetMapping("state/{user}")
+  public ResponseEntity<Long> state(@PathVariable String user)
+  {
+    return adder
+      .getSum(user)
+      .map(sum -> ResponseEntity.ok(sum))
+      .orElseGet(() -> ResponseEntity.notFound().build());
+  }
+
+
+  @ExceptionHandler
+  @ResponseStatus(HttpStatus.BAD_REQUEST)
+  public ErrorResponse illegalStateException(IllegalStateException e)
+  {
+    return new ErrorResponse(e.getMessage(), HttpStatus.BAD_REQUEST.value());
+  }
+}