mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2024-11-25 23:09:22 +00:00
Fix issues
This commit is contained in:
parent
bb6fa6954f
commit
4265d2ca9d
@ -17,22 +17,19 @@ use crate::data::error::Res;
|
|||||||
use crate::data::http_request_handler::HttpRequestHandler;
|
use crate::data::http_request_handler::HttpRequestHandler;
|
||||||
use crate::data::new_conversation::NewConversation;
|
use crate::data::new_conversation::NewConversation;
|
||||||
use crate::data::new_conversation_message::NewConversationMessage;
|
use crate::data::new_conversation_message::NewConversationMessage;
|
||||||
use crate::data::user::UserID;
|
|
||||||
use crate::data::user_ws_connection::UserWsConnection;
|
use crate::data::user_ws_connection::UserWsConnection;
|
||||||
use crate::data::user_ws_message::UserWsMessage;
|
use crate::data::user_ws_message::UserWsMessage;
|
||||||
use crate::helpers::{conversations_helper, events_helper, user_helper};
|
use crate::helpers::{conversations_helper, events_helper};
|
||||||
use crate::helpers::events_helper::Event;
|
use crate::helpers::events_helper::Event;
|
||||||
use crate::routes::RequestResult;
|
use crate::routes::RequestResult;
|
||||||
use crate::utils::string_utils::remove_html_nodes;
|
use crate::utils::string_utils::remove_html_nodes;
|
||||||
use crate::utils::user_data_utils::{delete_user_data_file_if_exists, user_data_path};
|
use crate::utils::user_data_utils::{delete_user_data_file_if_exists, user_data_path};
|
||||||
|
use std::collections::HashSet;
|
||||||
|
|
||||||
/// Create a new conversation
|
/// Create a new conversation
|
||||||
pub fn create(r: &mut HttpRequestHandler) -> RequestResult {
|
pub fn create(r: &mut HttpRequestHandler) -> RequestResult {
|
||||||
let name = r.post_string("name")?;
|
let name = r.post_string("name")?;
|
||||||
let mut members = r.post_numbers_list("users", 1)?
|
let mut members = r.post_users_id("users")?;
|
||||||
.iter()
|
|
||||||
.map(|f| UserID::new(f.clone()))
|
|
||||||
.collect::<Vec<UserID>>();
|
|
||||||
|
|
||||||
// Adapt name
|
// Adapt name
|
||||||
let name = match name.as_str() {
|
let name = match name.as_str() {
|
||||||
@ -40,18 +37,8 @@ pub fn create(r: &mut HttpRequestHandler) -> RequestResult {
|
|||||||
s => Some(s.to_string())
|
s => Some(s.to_string())
|
||||||
};
|
};
|
||||||
|
|
||||||
// Check if members exists
|
|
||||||
for user in &members {
|
|
||||||
if !user_helper::exists(user)? {
|
|
||||||
r.not_found(format!("User {} not found!", user.id()))?;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add current user ID if required
|
// Add current user ID if required
|
||||||
let curr_user_id = r.user_id()?;
|
members.insert(r.user_id()?);
|
||||||
if !members.contains(&curr_user_id) {
|
|
||||||
members.push(curr_user_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
let conv = NewConversation {
|
let conv = NewConversation {
|
||||||
owner_id: r.user_id()?,
|
owner_id: r.user_id()?,
|
||||||
@ -204,13 +191,17 @@ pub fn find_private(r: &mut HttpRequestHandler) -> RequestResult {
|
|||||||
return r.not_found(format!("Not any private conversation was found. The server was not allowed to create a new one..."));
|
return r.not_found(format!("Not any private conversation was found. The server was not allowed to create a new one..."));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let mut members = HashSet::new();
|
||||||
|
members.insert(r.user_id()?);
|
||||||
|
members.insert(r.user_id()?);
|
||||||
|
|
||||||
let new_conv = NewConversation {
|
let new_conv = NewConversation {
|
||||||
owner_id: r.user_id()?,
|
owner_id: r.user_id()?,
|
||||||
name: None,
|
name: None,
|
||||||
owner_following: true,
|
owner_following: true,
|
||||||
members: vec![r.user_id()?, other_user],
|
members,
|
||||||
can_everyone_add_members: true,
|
can_everyone_add_members: true,
|
||||||
color: r.post_color_opt("color")?,
|
color: None,
|
||||||
logo: None,
|
logo: None,
|
||||||
group_id: None,
|
group_id: None,
|
||||||
};
|
};
|
||||||
|
@ -2,8 +2,10 @@
|
|||||||
//!
|
//!
|
||||||
//! @author Pierre Huber
|
//! @author Pierre Huber
|
||||||
|
|
||||||
use crate::data::user::UserID;
|
use std::collections::HashSet;
|
||||||
|
|
||||||
use crate::data::group_id::GroupID;
|
use crate::data::group_id::GroupID;
|
||||||
|
use crate::data::user::UserID;
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct NewConversation {
|
pub struct NewConversation {
|
||||||
@ -13,6 +15,6 @@ pub struct NewConversation {
|
|||||||
pub color: Option<String>,
|
pub color: Option<String>,
|
||||||
pub logo: Option<String>,
|
pub logo: Option<String>,
|
||||||
pub owner_following: bool,
|
pub owner_following: bool,
|
||||||
pub members: Vec<UserID>,
|
pub members: HashSet<UserID>,
|
||||||
pub can_everyone_add_members: bool
|
pub can_everyone_add_members: bool,
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user