refactor: Streamlined API of `Chatroom` - all return-types are reactive
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / domain / Chatroom.java
index 62c9732..e1638aa 100644 (file)
@@ -10,7 +10,6 @@ import reactor.core.publisher.Sinks;
 
 import java.time.LocalDateTime;
 import java.util.*;
-import java.util.stream.Stream;
 
 
 @RequiredArgsConstructor
@@ -72,12 +71,16 @@ public class Chatroom
     return sink.asFlux();
   }
 
-  public Stream<Message> getMessages(long firstMessage)
+  public Flux<Message> getMessages(long first, long last)
   {
-    return messages
+    return Flux.fromStream(messages
         .values()
         .stream()
-        .filter(message -> message.getSerialNumber() >= firstMessage);
+        .filter(message ->
+        {
+          long serial = message.getSerialNumber();
+          return serial >= first && serial <= last;
+        }));
   }