X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2FDriverController.java;h=3aa931402d9d99c048d38bf2faf798fd22511c0a;hb=3495017ed2116f338c3342a313abdb7170683573;hp=f6ff47f8ac49c458a593770fadafc2aab34bd5c4;hpb=2da45caa1f9d32e3a5506d71cce7f06fa2e36523;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 f6ff47f..3aa9314 100644 --- a/src/main/java/de/juplo/kafka/DriverController.java +++ b/src/main/java/de/juplo/kafka/DriverController.java @@ -2,10 +2,14 @@ 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; import java.util.concurrent.ExecutionException; +import java.util.stream.Collectors; @RestController @@ -13,7 +17,7 @@ import java.util.concurrent.ExecutionException; public class DriverController { private final EndlessConsumer consumer; - private final KeyCountingRecordHandler keyCountingRecordHandler; + private final SumRecordHandler sumRecordHandler; @PostMapping("start") @@ -29,10 +33,30 @@ public class DriverController } - @GetMapping("seen") - public Map> seen() + @GetMapping("state") + public Map> state() { - return keyCountingRecordHandler.getSeen(); + return + sumRecordHandler + .getState() + .entrySet() + .stream() + .collect(Collectors.toMap( + entry -> entry.getKey(), + entry -> entry.getValue().getState())); + } + + @GetMapping("state/{user}") + public ResponseEntity seen(@PathVariable String user) + { + for (SumBusinessLogic sumBusinessLogic : sumRecordHandler.getState().values()) + { + Optional sum = sumBusinessLogic.getSum(user); + if (sum.isPresent()) + return ResponseEntity.ok(sum.get()); + } + + return ResponseEntity.notFound().build(); }