]> Untitled Git - lemmy.git/blobdiff - crates/api_crud/src/comment/update.rs
Moving settings to Database. (#2492)
[lemmy.git] / crates / api_crud / src / comment / update.rs
index 3a56a23ddb556f3bbb820cfd20c0c6bb90686b11..f9a18fb3063c911bf601162f9f47765d4ff6aa53 100644 (file)
@@ -8,6 +8,7 @@ use lemmy_api_common::{
     check_post_deleted_or_removed,
     get_local_user_view_from_jwt,
     is_mod_or_admin,
+    local_site_to_slur_regex,
   },
 };
 use lemmy_apub::protocol::activities::{
@@ -15,7 +16,11 @@ use lemmy_apub::protocol::activities::{
   CreateOrUpdateType,
 };
 use lemmy_db_schema::{
-  source::comment::{Comment, CommentForm},
+  source::{
+    actor_language::CommunityLanguage,
+    comment::{Comment, CommentUpdateForm},
+    local_site::LocalSite,
+  },
   traits::Crud,
 };
 use lemmy_db_views::structs::CommentView;
@@ -45,6 +50,7 @@ impl PerformCrud for EditComment {
     let data: &EditComment = self;
     let local_user_view =
       get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_site = blocking(context.pool(), LocalSite::read).await??;
 
     let comment_id = data.comment_id;
     let orig_comment = blocking(context.pool(), move |conn| {
@@ -77,20 +83,23 @@ impl PerformCrud for EditComment {
       .await?;
     }
 
+    let language_id = self.language_id;
+    blocking(context.pool(), move |conn| {
+      CommunityLanguage::is_allowed_community_language(conn, language_id, orig_comment.community.id)
+    })
+    .await??;
+
     // Update the Content
     let content_slurs_removed = data
       .content
       .as_ref()
-      .map(|c| remove_slurs(&c, &context.settings().slur_regex()));
+      .map(|c| remove_slurs(c, &local_site_to_slur_regex(&local_site)));
     let comment_id = data.comment_id;
-    let form = CommentForm {
-      creator_id: orig_comment.comment.creator_id,
-      post_id: orig_comment.comment.post_id,
-      content: content_slurs_removed.unwrap_or(orig_comment.comment.content),
-      distinguished: data.distinguished,
-      language_id: data.language_id,
-      ..Default::default()
-    };
+    let form = CommentUpdateForm::builder()
+      .content(content_slurs_removed)
+      .distinguished(data.distinguished)
+      .language_id(data.language_id)
+      .build();
     let updated_comment = blocking(context.pool(), move |conn| {
       Comment::update(conn, comment_id, &form)
     })