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." }))
         }