projects
/
demos
/
kafka
/
training
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Addder beendet sich bei Fehler und Logik für Beenden vereinfacht
[demos/kafka/training]
/
src
/
main
/
java
/
de
/
juplo
/
kafka
/
DriverController.java
diff --git
a/src/main/java/de/juplo/kafka/DriverController.java
b/src/main/java/de/juplo/kafka/DriverController.java
index
e64d6b8
..
cc3abed
100644
(file)
--- a/
src/main/java/de/juplo/kafka/DriverController.java
+++ b/
src/main/java/de/juplo/kafka/DriverController.java
@@
-5,44
+5,60
@@
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
+import java.util.List;
import java.util.Map;
import java.util.Map;
-import java.util.concurrent.ExecutionException;
+import java.util.Optional;
+import java.util.stream.Collectors;
@RestController
@RequiredArgsConstructor
public class DriverController
{
@RestController
@RequiredArgsConstructor
public class DriverController
{
- private final EndlessConsumer consumer;
+ private final ApplicationRecordHandler recordHandler;
+ private final AdderResults results;
- @
PostMapping("start
")
- public
void start
()
+ @
GetMapping("state
")
+ public
Map<Integer, Map<String, AdderResult>> state
()
{
{
- consumer.start();
+ return
+ recordHandler
+ .getState()
+ .entrySet()
+ .stream()
+ .collect(Collectors.toMap(
+ entry -> entry.getKey(),
+ entry -> entry.getValue().getState()));
}
}
- @
PostMapping("stop
")
- public
void stop() throws ExecutionException, InterruptedException
+ @
GetMapping("state/{user}
")
+ public
ResponseEntity<Long> state(@PathVariable String user)
{
{
- consumer.stop();
- }
+ for (AdderBusinessLogic adder : recordHandler.getState().values())
+ {
+ Optional<Long> sum = adder.getSum(user);
+ if (sum.isPresent())
+ return ResponseEntity.ok(sum.get());
+ }
+ return ResponseEntity.notFound().build();
+ }
- @GetMapping("
seen
")
- public Map<Integer, Map<String,
Map<String, Long>>> seen
()
+ @GetMapping("
results
")
+ public Map<Integer, Map<String,
List<AdderResult>>> results
()
{
{
- return
consumer.getSeen
();
+ return
results.getState
();
}
}
- @GetMapping("
seen
/{user}")
- public ResponseEntity<
Map<String, Long>> seen
(@PathVariable String user)
+ @GetMapping("
results
/{user}")
+ public ResponseEntity<
List<AdderResult>> results
(@PathVariable String user)
{
{
- for (Map<String,
Map<String, Long>> users : consumer.getSeen
().values())
+ for (Map<String,
List<AdderResult>> resultsByUser : this.results.getState
().values())
{
{
-
Map<String, Long> words = users
.get(user);
- if (
word
s != null)
- return ResponseEntity.ok(
word
s);
+
List<AdderResult> results = resultsByUser
.get(user);
+ if (
result
s != null)
+ return ResponseEntity.ok(
result
s);
}
return ResponseEntity.notFound().build();
}
return ResponseEntity.notFound().build();