1
0
mirror of https://gitlab.com/comunic/comunicapiv3 synced 2025-09-25 22:29:45 +00:00

Send message through WebSocket fro new conversation messages

This commit is contained in:
2021-02-06 09:41:56 +01:00
parent cf6063feef
commit de2448d496
6 changed files with 106 additions and 8 deletions

View File

@@ -12,12 +12,17 @@ use crate::api_data::res_count_unread_conversations::ResultCountUnreadConversati
use crate::api_data::res_create_conversation::ResCreateConversation;
use crate::api_data::res_find_private_conversations::ResFindPrivateConversations;
use crate::controllers::routes::RequestResult;
use crate::controllers::user_ws_controller;
use crate::controllers::user_ws_controller::WsConnection;
use crate::data::base_request_handler::BaseRequestHandler;
use crate::data::error::Res;
use crate::data::http_request_handler::HttpRequestHandler;
use crate::data::new_conversation::NewConversation;
use crate::data::new_conversation_message::NewConversationMessage;
use crate::data::user::UserID;
use crate::helpers::{conversations_helper, user_helper};
use crate::data::user_ws_message::UserWsMessage;
use crate::helpers::{conversations_helper, events_helper, user_helper};
use crate::helpers::events_helper::Event;
use crate::utils::string_utils::remove_html_nodes;
/// Create a new conversation
@@ -334,4 +339,23 @@ pub fn delete_message(r: &mut HttpRequestHandler) -> RequestResult {
conversations_helper::delete_message_by_id(msg_id)?;
r.success("The message has been successfully deleted!")
}
/// Events handler
pub fn handle_event(e: &events_helper::Event) -> Res {
match e {
Event::NewConversationMessage(msg) => {
user_ws_controller::send_message_to_specific_connections(
|f| f.conversations.contains(&msg.conv_id),
|_| UserWsMessage::no_id_message("new_conv_message", ConversationMessageAPI::new(msg)),
Some(|conn: &WsConnection| conversations_helper::mark_user_seen(msg.conv_id, &conn.user_id)),
)?;
}
Event::UpdatedConversationMessage(msg) => {}
Event::DeleteConversationMessage(msg) => {}
_ => {}
}
Ok(())
}