b15eab3b79eace467cfa73b5dd1084c242185921
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / domain / SimpleChatHome.java
1 package de.juplo.kafka.chat.backend.domain;
2
3 import lombok.RequiredArgsConstructor;
4 import lombok.extern.slf4j.Slf4j;
5 import reactor.core.publisher.Flux;
6 import reactor.core.publisher.Mono;
7
8 import java.util.*;
9
10
11 @Slf4j
12 @RequiredArgsConstructor
13 public class SimpleChatHome implements ChatHome
14 {
15   private final ChatHomeService service;
16   private final int shard;
17
18
19   public SimpleChatHome(ChatHomeService service)
20   {
21     this(service, 0);
22   }
23
24
25   @Override
26   public Mono<ChatRoom> putChatRoom(ChatRoom chatRoom)
27   {
28     return service.putChatRoom(chatRoom);
29   }
30
31   @Override
32   public Mono<ChatRoom> getChatRoom(UUID id)
33   {
34     return service
35         .getChatRoom(shard, id)
36         .switchIfEmpty(Mono.error(() -> new UnknownChatroomException(id)));
37   }
38
39   @Override
40   public Flux<ChatRoom> getChatRooms()
41   {
42     return service.getChatRooms(shard);
43   }
44 }