aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorZeyla Hellyer <[email protected]>2017-05-05 17:09:39 -0700
committerZeyla Hellyer <[email protected]>2017-05-05 17:11:31 -0700
commitae352ea3df86eb2d853d5b1af048a95409aafc38 (patch)
treeb5701ee38a917c2483b09628d0e2ccf981bc1058 /src
parentAdd framework dynamic_prefix example (diff)
downloadserenity-ae352ea3df86eb2d853d5b1af048a95409aafc38.tar.xz
serenity-ae352ea3df86eb2d853d5b1af048a95409aafc38.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/client/rest/mod.rs9
-rw-r--r--src/model/guild/guild_id.rs2
-rw-r--r--src/model/guild/mod.rs2
-rw-r--r--src/model/guild/partial_guild.rs2
4 files changed, 5 insertions, 10 deletions
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<Group> {
}
/// Leaves a guild.
-pub fn leave_guild(guild_id: u64) -> Result<PartialGuild> {
- let response = request!(Route::UsersMeGuildsId,
- delete,
- "/users/@me/guilds/{}",
- guild_id);
-
- serde_json::from_reader::<HyperResponse, PartialGuild>(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<PartialGuild> {
+ 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<PartialGuild> {
+ 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<PartialGuild> {
+ pub fn leave(&self) -> Result<()> {
self.id.leave()
}