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,
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)]
{
Ok(private_message) => private_message,
Err(e) => {
- return Err(LemmyError::from(e).with_message("couldnt_create_private_message"));
+ return Err(LemmyError::from_error_message(
+ e,
+ "couldnt_create_private_message",
+ ));
}
};
},
)
.await?
- .map_err(LemmyError::from)
.map_err(|e| e.with_message("couldnt_create_private_message"))?;
CreateOrUpdatePrivateMessage::send(
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(),
);
}