aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAustin Hellyer <[email protected]>2016-11-28 20:37:01 -0800
committerAustin Hellyer <[email protected]>2016-11-28 20:37:01 -0800
commit73c0b3d77c5a4c990af9997374adb262cae6ed1c (patch)
tree7a56e27f69c3c08f9e1d26e2291f79dd885fcaa6 /src
parentRe-order message builder file (diff)
downloadserenity-73c0b3d77c5a4c990af9997374adb262cae6ed1c.tar.xz
serenity-73c0b3d77c5a4c990af9997374adb262cae6ed1c.zip
Add missing REST methods
Diffstat (limited to 'src')
-rw-r--r--src/client/rest/mod.rs34
1 files changed, 31 insertions, 3 deletions
diff --git a/src/client/rest/mod.rs b/src/client/rest/mod.rs
index 4c2199a..84c7c00 100644
--- a/src/client/rest/mod.rs
+++ b/src/client/rest/mod.rs
@@ -447,7 +447,7 @@ pub fn delete_guild_integration(guild_id: u64, integration_id: u64)
/// Deletes an invite by code.
pub fn delete_invite(code: &str) -> Result<Invite> {
- let response = request!(Route::InvitesCode, delete, "/invite/{}", code);
+ let response = request!(Route::InvitesCode, delete, "/invites/{}", code);
Invite::decode(try!(serde_json::from_reader(response)))
}
@@ -622,6 +622,19 @@ pub fn edit_guild(guild_id: u64, map: Value) -> Result<PartialGuild> {
PartialGuild::decode(try!(serde_json::from_reader(response)))
}
+/// Edits a [`Guild`]'s embed setting.
+///
+/// [`Guild`]: ../../model/struct.Guild.html
+pub fn edit_guild_embed(guild_id: u64, map: Value) -> Result<GuildEmbed> {
+ let body = try!(serde_json::to_string(&map));
+ let response = request!(Route::GuildsIdEmbed(guild_id),
+ patch(body),
+ "/guilds/{}/embed",
+ guild_id);
+
+ GuildEmbed::decode(try!(serde_json::from_reader(response)))
+}
+
/// Does specific actions to a member.
pub fn edit_member(guild_id: u64, user_id: u64, map: Value)
-> Result<()> {
@@ -1030,7 +1043,10 @@ pub fn get_guild_prune_count(guild_id: u64, map: Value)
GuildPrune::decode(try!(serde_json::from_reader(response)))
}
-/// Gets regions that a guild can use, if a guild is VIP shows more regions :o
+/// Gets regions that a guild can use. If a guild has [`Feature::VipRegions`]
+/// enabled, then additional VIP-only regions are returned.
+///
+/// [`Feature::VipRegions`]: ../../model/enum.Feature.html#variant.VipRegions
pub fn get_guild_regions(guild_id: u64) -> Result<Vec<VoiceRegion>> {
let response = request!(Route::GuildsIdRegions(guild_id),
get,
@@ -1040,6 +1056,18 @@ pub fn get_guild_regions(guild_id: u64) -> Result<Vec<VoiceRegion>> {
decode_array(try!(serde_json::from_reader(response)), VoiceRegion::decode)
}
+/// Retrieves a list of roles in a [`Guild`].
+///
+/// [`Guild`]: ../../model/struct.Guild.html
+pub fn get_guild_roles(guild_id: u64) -> Result<Vec<Role>> {
+ let response = request!(Route::GuildsIdRoles(guild_id),
+ get,
+ "/guilds/{}/roles",
+ guild_id);
+
+ decode_array(try!(serde_json::from_reader(response)), Role::decode)
+}
+
/// Retrieves the webhooks for the given [guild][`Guild`]'s Id.
///
/// This method requires authentication.
@@ -1079,7 +1107,7 @@ pub fn get_guilds() -> Result<Vec<GuildInfo>> {
/// Gets information about a specific invite.
pub fn get_invite(code: &str) -> Result<Invite> {
let invite = ::utils::parse_invite(code);
- let response = request!(Route::InvitesCode, get, "/invite/{}", invite);
+ let response = request!(Route::InvitesCode, get, "/invites/{}", invite);
Invite::decode(try!(serde_json::from_reader(response)))
}