TMP
[demos/kafka/training] / src / main / java / de / juplo / kafka / DriverController.java
index a02fd2c..5a09c1b 100644 (file)
@@ -2,11 +2,10 @@ 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.concurrent.ExecutionException;
 
 
@@ -15,6 +14,7 @@ import java.util.concurrent.ExecutionException;
 public class DriverController
 {
   private final EndlessConsumer consumer;
+  private final SumRecordHandler wordcount;
 
 
   @PostMapping("start")
@@ -29,6 +29,27 @@ public class DriverController
     consumer.stop();
   }
 
+
+  @GetMapping("seen")
+  public Map<Integer, Map<String, Map<String, Long>>> seen()
+  {
+    return wordcount.getSeen();
+  }
+
+  @GetMapping("seen/{user}")
+  public ResponseEntity<Map<String, Long>> seen(@PathVariable String user)
+  {
+    for (Map<String, Map<String, Long>> users : wordcount.getSeen().values())
+    {
+      Map<String, Long> words = users.get(user);
+      if (words != null)
+        return ResponseEntity.ok(words);
+    }
+
+    return ResponseEntity.notFound().build();
+  }
+
+
   @ExceptionHandler
   @ResponseStatus(HttpStatus.BAD_REQUEST)
   public ErrorResponse illegalStateException(IllegalStateException e)