diff --git a/src/database/guards/reference.rs b/src/database/guards/reference.rs index 2982833d..687dac30 100644 --- a/src/database/guards/reference.rs +++ b/src/database/guards/reference.rs @@ -58,7 +58,25 @@ impl Ref { } pub async fn fetch_invite(&self) -> Result { - self.fetch("channel_invites").await + match self.fetch("channel_invites").await { + Ok(invite) => Ok(invite), + Err(err) => { + if let Ok(server) = self.fetch::("servers").await { + if server.discoverable { + return Ok( + Invite::Server { + code: server.id.clone(), + server: server.id, + creator: server.owner, + channel: server.channels[0].clone(), + } + ) + } + } + + Err(err) + } + } } pub async fn fetch_bot(&self) -> Result {