@@ -6,10 +6,7 @@ use ruma::{
|
|||||||
};
|
};
|
||||||
use tuwunel_core::{
|
use tuwunel_core::{
|
||||||
Result,
|
Result,
|
||||||
utils::{
|
utils::{future::BoolExt, stream::BroadbandExt},
|
||||||
future::BoolExt,
|
|
||||||
stream::{BroadbandExt, ReadyExt},
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::Ruma;
|
use crate::Ruma;
|
||||||
@@ -37,22 +34,21 @@ pub(crate) async fn search_users_route(
|
|||||||
let mut users = services
|
let mut users = services
|
||||||
.users
|
.users
|
||||||
.stream()
|
.stream()
|
||||||
.ready_filter(|user_id| {
|
|
||||||
user_id
|
|
||||||
.as_str()
|
|
||||||
.to_lowercase()
|
|
||||||
.contains(&search_term)
|
|
||||||
})
|
|
||||||
.map(ToOwned::to_owned)
|
.map(ToOwned::to_owned)
|
||||||
.broad_filter_map(async |user_id| {
|
.broad_filter_map(async |user_id| {
|
||||||
let display_name = services.users.displayname(&user_id).await.ok();
|
let display_name = services.users.displayname(&user_id).await.ok();
|
||||||
|
|
||||||
|
let user_id_matches = user_id
|
||||||
|
.as_str()
|
||||||
|
.to_lowercase()
|
||||||
|
.contains(&search_term);
|
||||||
|
|
||||||
let display_name_matches = display_name
|
let display_name_matches = display_name
|
||||||
.as_deref()
|
.as_deref()
|
||||||
.map(str::to_lowercase)
|
.map(str::to_lowercase)
|
||||||
.is_some_and(|display_name| display_name.contains(&search_term));
|
.is_some_and(|display_name| display_name.contains(&search_term));
|
||||||
|
|
||||||
if !display_name_matches {
|
if !user_id_matches && !display_name_matches {
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user