- return chatroomService
- .persistMessage(Message.MessageKey.of(user, id), timestamp, text)
- .doOnNext(message ->
+ Matcher matcher = VALID_USER.matcher(user);
+ if (!matcher.matches())
+ throw new InvalidUsernameException(user);
+
+ Message.MessageKey key = Message.MessageKey.of(user, id);
+ return service
+ .getMessage(key)
+ .handle((Message existing, SynchronousSink<Message> sink) ->