From ae352ea3df86eb2d853d5b1af048a95409aafc38 Mon Sep 17 00:00:00 2001 From: Zeyla Hellyer Date: Fri, 5 May 2017 17:09:39 -0700 Subject: Fix guild leaving result When leaving a guild, `rest::leave_guild` would attempt to deserialize a JSON body containing a partial amount of guild info, resulting in an error: ``` Could not leave guild: Json(ErrorImpl { code: EofWhileParsingValue, line: 1, column: 0 }) ``` Although the bot would still actually leave the guild, it would always return this error. To fix this, don't try to deserialize anything and only check for a 204 instead. --- src/client/rest/mod.rs | 9 ++------- src/model/guild/guild_id.rs | 2 +- src/model/guild/mod.rs | 2 +- src/model/guild/partial_guild.rs | 2 +- 4 files changed, 5 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/client/rest/mod.rs b/src/client/rest/mod.rs index 1e032fd..31d7a17 100644 --- a/src/client/rest/mod.rs +++ b/src/client/rest/mod.rs @@ -1341,13 +1341,8 @@ pub fn leave_group(guild_id: u64) -> Result { } /// Leaves a guild. -pub fn leave_guild(guild_id: u64) -> Result { - let response = request!(Route::UsersMeGuildsId, - delete, - "/users/@me/guilds/{}", - guild_id); - - serde_json::from_reader::(response).map_err(From::from) +pub fn leave_guild(guild_id: u64) -> Result<()> { + verify(204, request!(Route::UsersMeGuildsId, delete, "/users/@me/guilds/{}", guild_id)) } /// Deletes a user from group DM. diff --git a/src/model/guild/guild_id.rs b/src/model/guild/guild_id.rs index 6e5cb3a..d1866ed 100644 --- a/src/model/guild/guild_id.rs +++ b/src/model/guild/guild_id.rs @@ -356,7 +356,7 @@ impl GuildId { /// Leaves the guild. #[inline] - pub fn leave(&self) -> Result { + pub fn leave(&self) -> Result<()> { rest::leave_guild(self.0) } diff --git a/src/model/guild/mod.rs b/src/model/guild/mod.rs index 0daeec1..6757d98 100644 --- a/src/model/guild/mod.rs +++ b/src/model/guild/mod.rs @@ -642,7 +642,7 @@ impl Guild { /// Leaves the guild. #[inline] - pub fn leave(&self) -> Result { + pub fn leave(&self) -> Result<()> { self.id.leave() } diff --git a/src/model/guild/partial_guild.rs b/src/model/guild/partial_guild.rs index 8c1113b..3635a7a 100644 --- a/src/model/guild/partial_guild.rs +++ b/src/model/guild/partial_guild.rs @@ -350,7 +350,7 @@ impl PartialGuild { /// Leaves the guild. #[inline] - pub fn leave(&self) -> Result { + pub fn leave(&self) -> Result<()> { self.id.leave() } -- cgit v1.2.3