diff --git a/src/database/guild.rs b/src/database/guild.rs index 02a297c94c621c47553d26368f380a384e0ceee9..9b9801d6913f9ab8f183394dc85347d68aec1b09 100644 --- a/src/database/guild.rs +++ b/src/database/guild.rs @@ -1,5 +1,5 @@ use super::get_collection; -use super::channel::Channel; +use super::channel::fetch_channels; use lru::LruCache; use mongodb::bson::{doc, from_bson, Bson}; @@ -166,14 +166,14 @@ pub fn fetch_guilds(ids: &Vec<String>) -> Result<Vec<Guild>, String> { } pub fn serialise_guilds_with_channels(ids: &Vec<String>) -> Result<Vec<JsonValue>, String> { - let guilds = fetch_guilds(&gids)?; + let guilds = fetch_guilds(&ids)?; let cids: Vec<String> = guilds .iter() .flat_map(|x| x.channels.clone()) .collect(); - let channels = database::channel::fetch_channels(&cids)?; - let data: Vec<rocket_contrib::json::JsonValue> = guilds + let channels = fetch_channels(&cids)?; + Ok(guilds .into_iter() .map(|x| { let id = x.id.clone(); @@ -187,7 +187,7 @@ pub fn serialise_guilds_with_channels(ids: &Vec<String>) -> Result<Vec<JsonValue ); obj }) - .collect() + .collect()) } pub fn fetch_member(key: MemberKey) -> Result<Option<Member>, String> { diff --git a/src/routes/guild.rs b/src/routes/guild.rs index 9fe659bb40597d2119b6e658e4341a49113500b7..8409ec9568b223ad7e0d5309baa0b5a17328d088 100644 --- a/src/routes/guild.rs +++ b/src/routes/guild.rs @@ -38,7 +38,7 @@ macro_rules! with_permissions { pub fn my_guilds(user: User) -> Response { if let Ok(gids) = user.find_guilds() { if let Ok(data) = serialise_guilds_with_channels(&gids) { - Response::Success(data) + Response::Success(json!(data)) } else { Response::InternalServerError(json!({ "error": "Failed to fetch guilds." })) }