X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2FDriverController.java;h=0870f19de5dcdda626eb790a39106a4af7f22d2f;hb=c9d7601fc551069cd3a77da06a6333f22101a8a0;hp=a02fd2c7cfc7f45966ce488c584f0159212ac8c0;hpb=af66d390cd0a7f26e653cc129a89a63d11d8a7b6;p=demos%2Fkafka%2Ftraining diff --git a/src/main/java/de/juplo/kafka/DriverController.java b/src/main/java/de/juplo/kafka/DriverController.java index a02fd2c..0870f19 100644 --- a/src/main/java/de/juplo/kafka/DriverController.java +++ b/src/main/java/de/juplo/kafka/DriverController.java @@ -2,12 +2,13 @@ package de.juplo.kafka; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.ResponseStatus; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import java.util.Map; +import java.util.Optional; import java.util.concurrent.ExecutionException; +import java.util.stream.Collectors; @RestController @@ -15,6 +16,7 @@ import java.util.concurrent.ExecutionException; public class DriverController { private final EndlessConsumer consumer; + private final AdderRecordHandler adderRecordHandler; @PostMapping("start") @@ -29,6 +31,34 @@ public class DriverController consumer.stop(); } + + @GetMapping("state") + public Map> state() + { + return + adderRecordHandler + .getState() + .entrySet() + .stream() + .collect(Collectors.toMap( + entry -> entry.getKey(), + entry -> entry.getValue().getState())); + } + + @GetMapping("state/{user}") + public ResponseEntity seen(@PathVariable String user) + { + for (AdderBusinessLogic adderBusinessLogic : adderRecordHandler.getState().values()) + { + Optional sum = adderBusinessLogic.getSum(user); + if (sum.isPresent()) + return ResponseEntity.ok(sum.get()); + } + + return ResponseEntity.notFound().build(); + } + + @ExceptionHandler @ResponseStatus(HttpStatus.BAD_REQUEST) public ErrorResponse illegalStateException(IllegalStateException e)