diff --git a/Cargo.lock b/Cargo.lock index 1a0af828..e282fd0b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2818,9 +2818,9 @@ dependencies = [ [[package]] name = "redis-kiss" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14427aa42349c94ed30548390a0946773dbfd757a66cf76394fb02e5406f18f6" +checksum = "0d4f2f48fb776a308331c4a1ecb3a7b7b99f4d46c6beb2fc03db2da0f63fcad6" dependencies = [ "bincode", "lazy_static", @@ -2983,6 +2983,7 @@ version = "0.1.0" dependencies = [ "async-std", "async-trait", + "bincode", "bitfield", "bson 2.1.0", "dotenv", diff --git a/src/routes/servers/member_fetch_all.rs b/src/routes/servers/member_fetch_all.rs index 7e739315..7542b61f 100644 --- a/src/routes/servers/member_fetch_all.rs +++ b/src/routes/servers/member_fetch_all.rs @@ -1,4 +1,4 @@ -use revolt_quark::{models::User, perms, Db, Error, Ref, Result}; +use revolt_quark::{models::User, perms, presence::presence_filter_online, Db, Error, Ref, Result}; use rocket::serde::json::Value; @@ -21,7 +21,16 @@ pub async fn req(db: &Db, user: User, target: Ref) -> Result { user_ids.push(member.id.user.clone()); } - let users = db.fetch_users(&user_ids).await?; + let online_ids = presence_filter_online(&user_ids).await; + let users = db + .fetch_users(&user_ids) + .await? + .into_iter() + .map(|mut user| { + user.online = Some(online_ids.contains(&user.id)); + user.foreign() + }) + .collect::>(); Ok(json!({ "members": members,