X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2FDriverController.java;h=fdae76f979c98aa6016af81b1b0c12ba0666c405;hb=5f35354fd694f78599d66ee9e01fb4c0d89cc5bb;hp=ddff42ea11623efded52186f56b74d38300cc126;hpb=32a052b7c494009c59190857984ef3563f4f2b14;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 ddff42e..fdae76f 100644 --- a/src/main/java/de/juplo/kafka/DriverController.java +++ b/src/main/java/de/juplo/kafka/DriverController.java @@ -1,11 +1,11 @@ package de.juplo.kafka; import lombok.RequiredArgsConstructor; -import org.apache.kafka.common.TopicPartition; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RestController; +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.concurrent.ExecutionException; @@ -15,6 +15,7 @@ import java.util.concurrent.ExecutionException; public class DriverController { private final EndlessConsumer consumer; + private final SumRecordHandler sumRecordHandler; @PostMapping("start") @@ -31,8 +32,29 @@ public class DriverController @GetMapping("seen") - public Map seen() + public Map>> seen() { - return consumer.getSeen(); + return sumRecordHandler.getSeen(); + } + + @GetMapping("seen/{user}") + public ResponseEntity> seen(@PathVariable String user) + { + for (Map> users : sumRecordHandler.getSeen().values()) + { + List results = users.get(user); + if (results != null) + return ResponseEntity.ok(results); + } + + return ResponseEntity.notFound().build(); + } + + + @ExceptionHandler + @ResponseStatus(HttpStatus.BAD_REQUEST) + public ErrorResponse illegalStateException(IllegalStateException e) + { + return new ErrorResponse(e.getMessage(), HttpStatus.BAD_REQUEST.value()); } }