mirror of
				https://gitlab.com/comunic/comunicapiv3
				synced 2025-10-31 07:34:45 +00:00 
			
		
		
		
	Can get information about multiple groups
This commit is contained in:
		| @@ -2,13 +2,16 @@ | ||||
| //! | ||||
| //! @author Pierre Hubert | ||||
|  | ||||
| use std::collections::HashMap; | ||||
|  | ||||
| use crate::api_data::group_api::GroupApi; | ||||
| use crate::api_data::res_create_group::GroupCreationResult; | ||||
| use crate::controllers::routes::RequestResult; | ||||
| use crate::data::group::GroupAccessLevel; | ||||
| use crate::data::group_id::GroupID; | ||||
| use crate::data::http_request_handler::HttpRequestHandler; | ||||
| use crate::data::new_group::NewGroup; | ||||
| use crate::helpers::groups_helper; | ||||
| use crate::api_data::group_api::GroupApi; | ||||
|  | ||||
| /// Create a new group | ||||
| 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)?; | ||||
|  | ||||
|     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_multiple_info", Box::new(groups_controller::get_info_multiple)), | ||||
|  | ||||
|  | ||||
|         // Virtual directory controller | ||||
|         Route::post("/user/findbyfolder", Box::new(virtual_directory_controller::find_user)), | ||||
|   | ||||
| @@ -9,6 +9,6 @@ pub struct NewConversation { | ||||
|     pub owner_id: UserID, | ||||
|     pub name: Option<String>, | ||||
|     pub owner_following: bool, | ||||
|     pub members: Vec<i64>, | ||||
|     pub members: Vec<UserID>, | ||||
|     pub can_everyone_add_members: bool | ||||
| } | ||||
		Reference in New Issue
	
	Block a user