projects
/
demos
/
kafka
/
chat
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor: Splitted `ChatRoomInfo` and `ChatRoomData` - Aligned Code
[demos/kafka/chat]
/
src
/
main
/
java
/
de
/
juplo
/
kafka
/
chat
/
backend
/
api
/
ChatBackendController.java
diff --git
a/src/main/java/de/juplo/kafka/chat/backend/api/ChatBackendController.java
b/src/main/java/de/juplo/kafka/chat/backend/api/ChatBackendController.java
index
e7a6f1a
..
e2fe714
100644
(file)
--- a/
src/main/java/de/juplo/kafka/chat/backend/api/ChatBackendController.java
+++ b/
src/main/java/de/juplo/kafka/chat/backend/api/ChatBackendController.java
@@
-1,7
+1,7
@@
package de.juplo.kafka.chat.backend.api;
import de.juplo.kafka.chat.backend.domain.ChatHome;
package de.juplo.kafka.chat.backend.api;
import de.juplo.kafka.chat.backend.domain.ChatHome;
-import de.juplo.kafka.chat.backend.domain.ChatRoom;
+import de.juplo.kafka.chat.backend.domain.ChatRoom
Data
;
import de.juplo.kafka.chat.backend.persistence.StorageStrategy;
import lombok.RequiredArgsConstructor;
import org.springframework.http.codec.ServerSentEvent;
import de.juplo.kafka.chat.backend.persistence.StorageStrategy;
import lombok.RequiredArgsConstructor;
import org.springframework.http.codec.ServerSentEvent;
@@
-21,54
+21,61
@@
public class ChatBackendController
@PostMapping("create")
@PostMapping("create")
- public Mono<ChatRoomTo> create(@RequestBody String name)
+ public Mono<ChatRoom
Info
To> create(@RequestBody String name)
{
{
- return chatHome.createChatroom(name).map(ChatRoomTo::from);
+ UUID chatRoomId = UUID.randomUUID();
+ return chatHome
+ .createChatRoom(chatRoomId, name)
+ .map(ChatRoomInfoTo::from);
}
@GetMapping("list")
}
@GetMapping("list")
- public Flux<ChatRoomTo> list()
+ public Flux<ChatRoom
Info
To> list()
{
{
- return chatHome.getChatRooms().map(chatroom -> ChatRoomTo.from(chatroom));
+ return chatHome
+ .getChatRoomInfo()
+ .map(chatroomInfo -> ChatRoomInfoTo.from(chatroomInfo));
}
}
- @GetMapping("
list/{chatroomId}
")
- public Flux<MessageTo> list(@PathVariable UUID chat
r
oomId)
+ @GetMapping("
{chatRoomId}/list
")
+ public Flux<MessageTo> list(@PathVariable UUID chat
R
oomId)
{
return chatHome
{
return chatHome
- .getChatRoom
(chatr
oomId)
- .flatMapMany(chat
room -> chatroom
+ .getChatRoom
Data(chatR
oomId)
+ .flatMapMany(chat
RoomData -> chatRoomData
.getMessages()
.map(MessageTo::from));
}
.getMessages()
.map(MessageTo::from));
}
- @GetMapping("
get/{chatr
oomId}")
- public Mono<ChatRoom
To> get(@PathVariable UUID chatr
oomId)
+ @GetMapping("
{chatR
oomId}")
+ public Mono<ChatRoom
InfoTo> get(@PathVariable UUID chatR
oomId)
{
{
- return chatHome.getChatRoom(chatroomId).map(chatroom -> ChatRoomTo.from(chatroom));
+ return chatHome
+ .getChatRoomInfo(chatRoomId)
+ .map(chatRoomInfo -> ChatRoomInfoTo.from(chatRoomInfo));
}
}
- @PutMapping("
put/{chatr
oomId}/{username}/{messageId}")
+ @PutMapping("
{chatR
oomId}/{username}/{messageId}")
public Mono<MessageTo> put(
public Mono<MessageTo> put(
- @PathVariable UUID chat
r
oomId,
+ @PathVariable UUID chat
R
oomId,
@PathVariable String username,
@PathVariable Long messageId,
@RequestBody String text)
{
return
chatHome
@PathVariable String username,
@PathVariable Long messageId,
@RequestBody String text)
{
return
chatHome
- .getChatRoom
(chatr
oomId)
- .flatMap(chat
room -> put(chatroom
, username, messageId, text));
+ .getChatRoom
Data(chatR
oomId)
+ .flatMap(chat
RoomData -> put(chatRoomData
, username, messageId, text));
}
}
- p
ublic
Mono<MessageTo> put(
- ChatRoom
chatroom
,
+ p
rivate
Mono<MessageTo> put(
+ ChatRoom
Data chatRoomData
,
String username,
Long messageId,
String text)
{
return
String username,
Long messageId,
String text)
{
return
- chat
room
+ chat
RoomData
.addMessage(
messageId,
username,
.addMessage(
messageId,
username,
@@
-76,40
+83,40
@@
public class ChatBackendController
.map(message -> MessageTo.from(message));
}
.map(message -> MessageTo.from(message));
}
- @GetMapping("
get/{chatr
oomId}/{username}/{messageId}")
+ @GetMapping("
{chatR
oomId}/{username}/{messageId}")
public Mono<MessageTo> get(
public Mono<MessageTo> get(
- @PathVariable UUID chat
r
oomId,
+ @PathVariable UUID chat
R
oomId,
@PathVariable String username,
@PathVariable Long messageId)
{
return
chatHome
@PathVariable String username,
@PathVariable Long messageId)
{
return
chatHome
- .getChatRoom
(chatr
oomId)
- .flatMap(chat
room -> get(chatroom
, username, messageId));
+ .getChatRoom
Data(chatR
oomId)
+ .flatMap(chat
RoomData -> get(chatRoomData
, username, messageId));
}
private Mono<MessageTo> get(
}
private Mono<MessageTo> get(
- ChatRoom
chatroom
,
+ ChatRoom
Data chatRoomData
,
String username,
Long messageId)
{
return
String username,
Long messageId)
{
return
- chat
room
+ chat
RoomData
.getMessage(username, messageId)
.map(message -> MessageTo.from(message));
}
.getMessage(username, messageId)
.map(message -> MessageTo.from(message));
}
- @GetMapping(path = "
listen/{chatroomId}
")
- public Flux<ServerSentEvent<MessageTo>> listen(@PathVariable UUID chat
r
oomId)
+ @GetMapping(path = "
{chatRoomId}/listen
")
+ public Flux<ServerSentEvent<MessageTo>> listen(@PathVariable UUID chat
R
oomId)
{
return chatHome
{
return chatHome
- .getChatRoom
(chatr
oomId)
- .flatMapMany(chat
room -> listen(chatroom
));
+ .getChatRoom
Data(chatR
oomId)
+ .flatMapMany(chat
RoomData -> listen(chatRoomData
));
}
}
- private Flux<ServerSentEvent<MessageTo>> listen(ChatRoom
chatroom
)
+ private Flux<ServerSentEvent<MessageTo>> listen(ChatRoom
Data chatRoomData
)
{
{
- return chat
room
+ return chat
RoomData
.listen()
.log()
.map(message -> MessageTo.from(message))
.listen()
.log()
.map(message -> MessageTo.from(message))
@@
-124,6
+131,6
@@
public class ChatBackendController
@PostMapping("/store")
public void store()
{
@PostMapping("/store")
public void store()
{
- storageStrategy.write
Chatrooms(chatHome.getChatRooms()
);
+ storageStrategy.write
(chatHome
);
}
}
}
}