]> Untitled Git - lemmy.git/commitdiff
Fixing some comment websocket issues. (#1768)
authorDessalines <dessalines@users.noreply.github.com>
Sat, 4 Sep 2021 12:47:41 +0000 (08:47 -0400)
committerGitHub <noreply@github.com>
Sat, 4 Sep 2021 12:47:41 +0000 (08:47 -0400)
- Wasn't correctly getting comment parent user for mark as read. Fixes #1767
- Was using all recipients for simple comment return. Fixes #1766

crates/api_crud/src/comment/create.rs
crates/websocket/src/send.rs

index c25966c7d0536072a32aa58b34e6218e8f15055c..94c30692d6f9fe3febb2bbaf65faa2604f25f6ba 100644 (file)
@@ -21,6 +21,7 @@ use lemmy_apub::{
 };
 use lemmy_db_queries::{source::comment::Comment_, Crud, Likeable};
 use lemmy_db_schema::source::comment::*;
+use lemmy_db_views::comment_view::CommentView;
 use lemmy_utils::{
   utils::{remove_slurs, scrape_text_for_mentions},
   ApiError,
@@ -143,8 +144,15 @@ impl PerformCrud for CreateComment {
     )
     .await?;
 
+    let person_id = local_user_view.person.id;
+    let comment_id = inserted_comment.id;
+    let comment_view = blocking(context.pool(), move |conn| {
+      CommentView::read(conn, comment_id, Some(person_id))
+    })
+    .await??;
+
     // If its a comment to yourself, mark it as read
-    if local_user_view.person.id == inserted_comment.creator_id {
+    if local_user_view.person.id == comment_view.get_recipient_id() {
       let comment_id = inserted_comment.id;
       blocking(context.pool(), move |conn| {
         Comment::update_read(conn, comment_id, true)
index 130d94a48eefcd00e162596e189874cd180f0b54..a49759d639c2feda27ce2c31dc1df51daf77d9b5 100644 (file)
@@ -76,10 +76,11 @@ pub async fn send_comment_ws_message<OP: ToString + Send + OperationType + 'stat
     view.comment = view.comment.blank_out_deleted_or_removed_info();
   }
 
-  let res = CommentResponse {
+  let mut res = CommentResponse {
     comment_view: view,
     recipient_ids,
-    form_id,
+    // The sent out form id should be null
+    form_id: None,
   };
 
   context.chat_server().do_send(SendComment {
@@ -88,6 +89,10 @@ pub async fn send_comment_ws_message<OP: ToString + Send + OperationType + 'stat
     websocket_id,
   });
 
+  // The recipient_ids should be empty for returns
+  res.recipient_ids = Vec::new();
+  res.form_id = form_id;
+
   Ok(res)
 }