1
0
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:
2020-06-23 18:55:23 +02:00
parent c4eec8150c
commit 2cf2146f17
11 changed files with 132 additions and 7 deletions

@ -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))
}