1
0
mirror of https://gitlab.com/comunic/comunicapiv3 synced 2025-06-20 16:35:17 +00:00

Create first server message for conversations

This commit is contained in:
2021-03-07 15:44:52 +01:00
parent 466cf1903f
commit 8a33980a2d
4 changed files with 36 additions and 9 deletions

View File

@ -4,7 +4,7 @@
use crate::constants::database_tables_names::{CONV_LIST_TABLE, CONV_MEMBERS_TABLE, CONV_MESSAGES_TABLE};
use crate::data::conversation::{Conversation, ConversationMember, ConvID, NewConversationSettings};
use crate::data::conversation_message::{ConversationMessage, ConversationMessageFile, ConversationServerMessageType};
use crate::data::conversation_message::{ConversationMessage, ConversationMessageFile, ConversationServerMessageType, UserAddedAnotherUserToConversation};
use crate::data::error::{ExecError, Res, ResultBoxError};
use crate::data::new_conversation::NewConversation;
use crate::data::new_conversation_message::NewConversationMessage;
@ -48,7 +48,7 @@ pub fn create(conv: &NewConversation) -> Res<ConvID> {
}
/// Add a member to a conversation
pub fn add_member(conv_id: ConvID, user_id: &UserID, following: bool, admin: bool, _adder: &UserID) -> Res {
pub fn add_member(conv_id: ConvID, user_id: &UserID, following: bool, admin: bool, adder: &UserID) -> Res {
InsertQuery::new(CONV_MEMBERS_TABLE)
.add_conv_id("conv_id", conv_id)
.add_user_id("user_id", user_id)
@ -58,7 +58,18 @@ pub fn add_member(conv_id: ConvID, user_id: &UserID, following: bool, admin: boo
.add_u64("last_message_seen", 0)
.insert()?;
// TODO : create a message
// Create a message
if adder != user_id {
send_message(
&NewConversationMessage::new_server_message(
conv_id,
ConversationServerMessageType::UserAddedAnotherUserToConversation(UserAddedAnotherUserToConversation {
user_who_added: adder.clone(),
user_added: user_id.clone()
})
)
)?;
}
Ok(())
}
@ -276,7 +287,7 @@ pub fn send_message(msg: &NewConversationMessage) -> ResultBoxError<()> {
// Insert the message in the database
let mut msg_request = database::InsertQuery::new(CONV_MESSAGES_TABLE)
.add_conv_id("conv_id", msg.conv_id)
.add_u64("user_id", msg.user_id.as_ref().map(|u| u.id()).unwrap_or(0))
.add_opt_user_id("user_id", msg.user_id.clone())
.add_u64("time_sent", t);
if let Some(server_msg) = &msg.server_message {

View File

@ -615,7 +615,12 @@ impl InsertQuery {
self
}
/// Add an optional number. If None, Null will be inserted
/// Add an optional user ID. If None, Null will be inserted
pub fn add_opt_user_id(self, key: &str, value: Option<UserID>) -> InsertQuery {
self.add_opt_u64(key, value.map(|u| u.id()))
}
/// Add an optional group ID. If None, Null will be inserted
pub fn add_opt_group_id(self, key: &str, value: Option<GroupID>) -> InsertQuery {
self.add_opt_u64(key, value.map(|u| u.id()))
}