refactor: Added success- and failure-callbacks to `StorageStrategy`
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / storage / mongodb / MongoDbStorageStrategy.java
index b1bead9..972122e 100644 (file)
@@ -41,10 +41,16 @@ public class MongoDbStorageStrategy implements StorageStrategy
   }
 
   @Override
-  public void writeChatRoomData(UUID chatRoomId, Flux<Message> messageFlux)
+  public void writeChatRoomData(
+      UUID chatRoomId,
+      Flux<Message> messageFlux,
+      SuccessCallback successCallback,
+      FailureCallback failureCallback)
   {
     messageFlux
         .map(message -> MessageTo.from(chatRoomId, message))
+        .doOnComplete(() -> successCallback.accept(chatRoomId))
+        .doOnError(throwable -> failureCallback.accept(chatRoomId, throwable))
         .subscribe(messageTo -> messageRepository.save(messageTo));
   }