]> Untitled Git - lemmy.git/blobdiff - crates/api_crud/src/private_message/create.rs
Implement reports for private messages (#2433)
[lemmy.git] / crates / api_crud / src / private_message / create.rs
index ad7fd4adf9e4eed768e1dd99a4614322d2c9532a..278031311ed938504c0d1a82731bb687e8e71735 100644 (file)
@@ -1,11 +1,14 @@
 use crate::PerformCrud;
 use actix_web::web::Data;
 use lemmy_api_common::{
-  blocking,
-  check_person_block,
-  get_local_user_view_from_jwt,
-  person::{CreatePrivateMessage, PrivateMessageResponse},
-  send_email_to_user,
+  private_message::{CreatePrivateMessage, PrivateMessageResponse},
+  utils::{
+    blocking,
+    check_person_block,
+    get_interface_language,
+    get_local_user_view_from_jwt,
+    send_email_to_user,
+  },
 };
 use lemmy_apub::{
   generate_local_apub_endpoint,
@@ -19,8 +22,8 @@ use lemmy_db_schema::{
   source::private_message::{PrivateMessage, PrivateMessageForm},
   traits::Crud,
 };
-use lemmy_db_views::local_user_view::LocalUserView;
-use lemmy_utils::{utils::remove_slurs, ConnectionId, LemmyError};
+use lemmy_db_views::structs::LocalUserView;
+use lemmy_utils::{error::LemmyError, utils::remove_slurs, ConnectionId};
 use lemmy_websocket::{send::send_pm_ws_message, LemmyContext, UserOperationCrud};
 
 #[async_trait::async_trait(?Send)]
@@ -106,12 +109,17 @@ impl PerformCrud for CreatePrivateMessage {
         LocalUserView::read_person(conn, recipient_id)
       })
       .await??;
+      let lang = get_interface_language(&local_recipient);
+      let inbox_link = format!("{}/inbox", context.settings().get_protocol_and_hostname());
       send_email_to_user(
         &local_recipient,
-        "Private Message from",
-        "Private Message",
-        &content_slurs_removed,
-        &context.settings(),
+        &lang.notification_private_message_subject(&local_recipient.person.name),
+        &lang.notification_private_message_body(
+          &inbox_link,
+          &content_slurs_removed,
+          &local_recipient.person.name,
+        ),
+        context.settings(),
       );
     }