mirror of
				https://gitlab.com/comunic/comunicapiv3
				synced 2025-11-04 09:34:04 +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)),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user