comment_view.comment.read = true;
}
- let res = CommentResponse {
+ let mut res = CommentResponse {
comment_view,
recipient_ids,
form_id: data.form_id.to_owned(),
websocket_id,
});
+ res.recipient_ids = Vec::new(); // Necessary to avoid doubles
+
Ok(res)
}
}
if let Some(recipient_id) = self.recipient_id {
query = query
// TODO needs lots of testing
- .filter(user_alias_1::id.eq(recipient_id))
+ .filter(user_alias_1::id.eq(recipient_id)) // Gets the comment replies
+ .or_filter(comment::parent_id.is_null().and(post::creator_id.eq(recipient_id))) // Gets the top level replies
.filter(comment::deleted.eq(false))
.filter(comment::removed.eq(false));
}
// Send it to the post room
let mut comment_post_sent = comment_reply_sent.clone();
+ // Remove the recipients here to separate mentions / user messages from post or community comments
comment_post_sent.recipient_ids = Vec::new();
self.send_post_room_message(
user_operation,
websocket_id,
)?;
- // Remove the form id here to separate mentions / user messages from post or community comments
- comment_reply_sent.form_id = None;
// Send it to the recipient(s) including the mentioned users
for recipient_id in &comment_reply_sent.recipient_ids {
self.send_user_room_message(