1 package de.juplo.kafka;
3 import lombok.RequiredArgsConstructor;
4 import org.springframework.http.HttpStatus;
5 import org.springframework.http.ResponseEntity;
6 import org.springframework.web.bind.annotation.*;
9 import java.util.concurrent.ExecutionException;
13 @RequiredArgsConstructor
14 public class DriverController
16 private final EndlessConsumer consumer;
17 private final WordcountRecordHandler wordcount;
27 public void stop() throws ExecutionException, InterruptedException
34 public Map<Integer, Map<String, Map<String, Long>>> seen()
36 return wordcount.getSeen();
39 @GetMapping("seen/{user}")
40 public ResponseEntity<Map<String, Long>> seen(@PathVariable String user)
42 for (Map<String, Map<String, Long>> users : wordcount.getSeen().values())
44 Map<String, Long> words = users.get(user);
46 return ResponseEntity.ok(words);
49 return ResponseEntity.notFound().build();
54 @ResponseStatus(HttpStatus.BAD_REQUEST)
55 public ErrorResponse illegalStateException(IllegalStateException e)
57 return new ErrorResponse(e.getMessage(), HttpStatus.BAD_REQUEST.value());