WIP - Ein Versuch (vielleicht Unsinn)
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / storage / mongodb / MongoDbStorageStrategy.java
index 972122e..1d742a5 100644 (file)
@@ -25,14 +25,13 @@ public class MongoDbStorageStrategy implements StorageStrategy
   {
     chatRoomInfoFlux
         .map(ChatRoomTo::from)
-        .subscribe(chatroomTo -> chatRoomRepository.save(chatroomTo));
+        .flatMap(chatroomTo -> chatRoomRepository.save(chatroomTo));
   }
 
   @Override
   public Flux<ChatRoomInfo> readChatRoomInfo()
   {
-    return Flux
-        .fromIterable(chatRoomRepository.findAll())
+    return chatRoomRepository.findAll()
         .map(chatRoomTo ->
         {
           UUID chatRoomId = UUID.fromString(chatRoomTo.getId());
@@ -41,24 +40,18 @@ public class MongoDbStorageStrategy implements StorageStrategy
   }
 
   @Override
-  public void writeChatRoomData(
-      UUID chatRoomId,
-      Flux<Message> messageFlux,
-      SuccessCallback successCallback,
-      FailureCallback failureCallback)
+  public void writeChatRoomData(UUID chatRoomId, Flux<Message> messageFlux)
   {
     messageFlux
         .map(message -> MessageTo.from(chatRoomId, message))
-        .doOnComplete(() -> successCallback.accept(chatRoomId))
-        .doOnError(throwable -> failureCallback.accept(chatRoomId, throwable))
-        .subscribe(messageTo -> messageRepository.save(messageTo));
+        .flatMap(messageTo -> messageRepository.save(messageTo))
+        .subscribe();
   }
 
   @Override
   public Flux<Message> readChatRoomData(UUID chatRoomId)
   {
-    return Flux
-        .fromIterable(messageRepository.findByChatRoomIdOrderBySerialAsc(chatRoomId.toString()))
+    return messageRepository.findByChatRoomIdOrderBySerialAsc(chatRoomId.toString())
         .map(messageTo -> messageTo.toMessage());
   }
 }