1 use lemmy_api_common::{blocking, person::PrivateMessageResponse};
2 use lemmy_db_schema::PrivateMessageId;
3 use lemmy_db_views::{local_user_view::LocalUserView, private_message_view::PrivateMessageView};
4 use lemmy_utils::LemmyError;
5 use lemmy_websocket::{messages::SendUserRoomMessage, LemmyContext, UserOperationCrud};
12 async fn send_websocket_message(
13 private_message_id: PrivateMessageId,
14 op: UserOperationCrud,
15 context: &LemmyContext,
16 ) -> Result<(), LemmyError> {
17 let message = blocking(context.pool(), move |conn| {
18 PrivateMessageView::read(conn, private_message_id)
21 let res = PrivateMessageResponse {
22 private_message_view: message,
25 // Send notifications to the local recipient, if one exists
26 let recipient_id = res.private_message_view.recipient.id;
27 let local_recipient_id = blocking(context.pool(), move |conn| {
28 LocalUserView::read_person(conn, recipient_id)
34 context.chat_server().do_send(SendUserRoomMessage {