mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2025-07-09 00:52:49 +00:00
Can make global search
This commit is contained in:
@ -2,9 +2,11 @@
|
||||
//!
|
||||
//! @author Pierre Hubert
|
||||
|
||||
use crate::api_data::global_search_result_api::GlobalSearchResultAPI;
|
||||
use crate::controllers::routes::RequestResult;
|
||||
use crate::data::global_search_result::GlobalSearchResult;
|
||||
use crate::data::http_request_handler::HttpRequestHandler;
|
||||
use crate::helpers::user_helper;
|
||||
use crate::helpers::{groups_helper, user_helper};
|
||||
|
||||
/// Search for user
|
||||
pub fn search_user(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
@ -18,5 +20,19 @@ pub fn search_user(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
|
||||
/// Perform a global search
|
||||
pub fn search_global(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
r.success("implement me")
|
||||
let query = r.post_string("query")?;
|
||||
let limit = 10;
|
||||
|
||||
let mut list = user_helper::search_user(&query, limit)?
|
||||
.iter()
|
||||
.map(|f| GlobalSearchResult::User(f.clone()))
|
||||
.collect::<Vec<GlobalSearchResult>>();
|
||||
|
||||
list.append(&mut groups_helper::search_group(&query, limit)?
|
||||
.iter()
|
||||
.map(|f| GlobalSearchResult::Group(f.clone()))
|
||||
.collect::<Vec<GlobalSearchResult>>());
|
||||
|
||||
|
||||
r.set_response(GlobalSearchResultAPI::for_list(&list))
|
||||
}
|
Reference in New Issue
Block a user