refactor: Introduced `ChannelMediator`
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / implementation / kafka / ChannelMediator.java
diff --git a/src/main/java/de/juplo/kafka/chat/backend/implementation/kafka/ChannelMediator.java b/src/main/java/de/juplo/kafka/chat/backend/implementation/kafka/ChannelMediator.java
new file mode 100644 (file)
index 0000000..d6e028a
--- /dev/null
@@ -0,0 +1,32 @@
+package de.juplo.kafka.chat.backend.implementation.kafka;
+
+import de.juplo.kafka.chat.backend.domain.ChatRoomInfo;
+import lombok.RequiredArgsConstructor;
+import lombok.Setter;
+import reactor.core.publisher.Mono;
+
+import java.util.UUID;
+
+
+@RequiredArgsConstructor
+public class ChannelMediator
+{
+  @Setter
+  private InfoChannel infoChannel;
+
+
+  void shardAssigned(int shard)
+  {
+    infoChannel.sendShardAssignedEvent(shard);
+  }
+
+  void shardRevoked(int shard)
+  {
+    infoChannel.sendShardRevokedEvent(shard);
+  }
+
+  Mono<ChatRoomInfo> getChatRoomInfo(UUID id)
+  {
+    return infoChannel.getChatRoomInfo(id);
+  }
+}