mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2024-11-26 07:19:22 +00:00
Can get information about multiple groups
This commit is contained in:
parent
aacf87cf40
commit
444cad6e09
@ -2,13 +2,16 @@
|
|||||||
//!
|
//!
|
||||||
//! @author Pierre Hubert
|
//! @author Pierre Hubert
|
||||||
|
|
||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
use crate::api_data::group_api::GroupApi;
|
||||||
use crate::api_data::res_create_group::GroupCreationResult;
|
use crate::api_data::res_create_group::GroupCreationResult;
|
||||||
use crate::controllers::routes::RequestResult;
|
use crate::controllers::routes::RequestResult;
|
||||||
use crate::data::group::GroupAccessLevel;
|
use crate::data::group::GroupAccessLevel;
|
||||||
|
use crate::data::group_id::GroupID;
|
||||||
use crate::data::http_request_handler::HttpRequestHandler;
|
use crate::data::http_request_handler::HttpRequestHandler;
|
||||||
use crate::data::new_group::NewGroup;
|
use crate::data::new_group::NewGroup;
|
||||||
use crate::helpers::groups_helper;
|
use crate::helpers::groups_helper;
|
||||||
use crate::api_data::group_api::GroupApi;
|
|
||||||
|
|
||||||
/// Create a new group
|
/// Create a new group
|
||||||
pub fn create(r: &mut HttpRequestHandler) -> RequestResult {
|
pub fn create(r: &mut HttpRequestHandler) -> RequestResult {
|
||||||
@ -38,4 +41,26 @@ pub fn get_info_single(r: &mut HttpRequestHandler) -> RequestResult {
|
|||||||
let group = groups_helper::get_info(&group_id)?;
|
let group = groups_helper::get_info(&group_id)?;
|
||||||
|
|
||||||
r.set_response(GroupApi::new(&group, r.user_id_opt())?)
|
r.set_response(GroupApi::new(&group, r.user_id_opt())?)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get information about multiple users
|
||||||
|
pub fn get_info_multiple(r: &mut HttpRequestHandler) -> RequestResult {
|
||||||
|
let groups_id = r.post_numbers_list("list", 1)?;
|
||||||
|
|
||||||
|
let mut list = HashMap::new();
|
||||||
|
|
||||||
|
for id in groups_id {
|
||||||
|
let id = GroupID::new(id as u64);
|
||||||
|
|
||||||
|
if !groups_helper::exists(&id)? ||
|
||||||
|
groups_helper::get_access_level(&id, r.user_id_opt())? < GroupAccessLevel::LIMITED_ACCESS {
|
||||||
|
r.not_found(format!("Group {} not found!", id.id()))?;
|
||||||
|
}
|
||||||
|
|
||||||
|
let group = groups_helper::get_info(&id)?;
|
||||||
|
|
||||||
|
list.insert(id.id().to_string(), GroupApi::new(&group, r.user_id_opt())?);
|
||||||
|
}
|
||||||
|
|
||||||
|
r.set_response(list)
|
||||||
}
|
}
|
@ -134,6 +134,8 @@ pub fn get_routes() -> Vec<Route> {
|
|||||||
|
|
||||||
Route::post("/groups/get_info", Box::new(groups_controller::get_info_single)),
|
Route::post("/groups/get_info", Box::new(groups_controller::get_info_single)),
|
||||||
|
|
||||||
|
Route::post("/groups/get_multiple_info", Box::new(groups_controller::get_info_multiple)),
|
||||||
|
|
||||||
|
|
||||||
// Virtual directory controller
|
// Virtual directory controller
|
||||||
Route::post("/user/findbyfolder", Box::new(virtual_directory_controller::find_user)),
|
Route::post("/user/findbyfolder", Box::new(virtual_directory_controller::find_user)),
|
||||||
|
@ -9,6 +9,6 @@ pub struct NewConversation {
|
|||||||
pub owner_id: UserID,
|
pub owner_id: UserID,
|
||||||
pub name: Option<String>,
|
pub name: Option<String>,
|
||||||
pub owner_following: bool,
|
pub owner_following: bool,
|
||||||
pub members: Vec<i64>,
|
pub members: Vec<UserID>,
|
||||||
pub can_everyone_add_members: bool
|
pub can_everyone_add_members: bool
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user