diff options
| author | Zeyla Hellyer <[email protected]> | 2017-04-13 20:45:56 -0700 |
|---|---|---|
| committer | Zeyla Hellyer <[email protected]> | 2017-04-19 14:53:32 -0700 |
| commit | 3f03f9adc97315bb61a5c71f52365306cb8e2d1a (patch) | |
| tree | 8fe0b518d1450b0657cfb75f56251fd90120807e /src/model/guild/guild_id.rs | |
| parent | Update the way errors are handled in dispatch (diff) | |
| download | serenity-3f03f9adc97315bb61a5c71f52365306cb8e2d1a.tar.xz serenity-3f03f9adc97315bb61a5c71f52365306cb8e2d1a.zip | |
Deprecate methods prefixed with `get_`
A lot of structs - such as `Guild` or `ChannelId` - have methods with
prefixes of `get_`, which are generally discouraged. To fix this,
deprecate them and remove them in v0.3.0.
Diffstat (limited to 'src/model/guild/guild_id.rs')
| -rw-r--r-- | src/model/guild/guild_id.rs | 261 |
1 files changed, 176 insertions, 85 deletions
diff --git a/src/model/guild/guild_id.rs b/src/model/guild/guild_id.rs index e5a0686..f219659 100644 --- a/src/model/guild/guild_id.rs +++ b/src/model/guild/guild_id.rs @@ -50,6 +50,29 @@ impl GuildId { rest::ban_user(self.0, user.into().0, delete_message_days) } + /// Gets a list of the guild's bans. + /// + /// Requires the [Ban Members] permission. + /// + /// [Ban Members]: permissions/constant.BAN_MEMBERS.html + #[inline] + pub fn bans(&self) -> Result<Vec<Ban>> { + rest::get_bans(self.0) + } + + /// Gets all of the guild's channels over the REST API. + /// + /// [`Guild`]: struct.Guild.html + pub fn channels(&self) -> Result<HashMap<ChannelId, GuildChannel>> { + let mut channels = HashMap::new(); + + for channel in rest::get_channels(self.0)? { + channels.insert(channel.id, channel); + } + + Ok(channels) + } + /// Creates a [`GuildChannel`] in the the guild. /// /// Refer to [`rest::create_channel`] for more information. @@ -267,51 +290,13 @@ impl GuildId { rest::edit_role(self.0, role_id.into().0, &f(EditRole::default()).0) } - /// Search the cache for the guild. - #[cfg(feature="cache")] - pub fn find(&self) -> Option<Arc<RwLock<Guild>>> { - CACHE.read().unwrap().get_guild(*self) - } - - /// Requests the guild over REST. - /// - /// Note that this will not be a complete guild, as REST does not send - /// all data with a guild retrieval. - #[inline] - pub fn get(&self) -> Result<PartialGuild> { - rest::get_guild(self.0) - } - - /// Gets a list of the guild's bans. - /// - /// Requires the [Ban Members] permission. - /// - /// [Ban Members]: permissions/constant.BAN_MEMBERS.html - #[inline] - pub fn get_bans(&self) -> Result<Vec<Ban>> { - rest::get_bans(self.0) - } - - /// Gets all of the guild's channels over the REST API. - /// - /// [`Guild`]: struct.Guild.html - pub fn get_channels(&self) -> Result<HashMap<ChannelId, GuildChannel>> { - let mut channels = HashMap::new(); - - for channel in rest::get_channels(self.0)? { - channels.insert(channel.id, channel); - } - - Ok(channels) - } - /// Gets an emoji in the guild by Id. /// /// Requires the [Manage Emojis] permission. /// /// [Manage Emojis]: permissions/constant.MANAGE_EMOJIS.html #[inline] - pub fn get_emoji<E: Into<EmojiId>>(&self, emoji_id: E) -> Result<Emoji> { + pub fn emoji<E: Into<EmojiId>>(&self, emoji_id: E) -> Result<Emoji> { rest::get_emoji(self.0, emoji_id.into().0) } @@ -321,15 +306,30 @@ impl GuildId { /// /// [Manage Emojis]: permissions/constant.MANAGE_EMOJIS.html #[inline] - pub fn get_emojis(&self) -> Result<Vec<Emoji>> { + pub fn emojis(&self) -> Result<Vec<Emoji>> { rest::get_emojis(self.0) } + /// Search the cache for the guild. + #[cfg(feature="cache")] + pub fn find(&self) -> Option<Arc<RwLock<Guild>>> { + CACHE.read().unwrap().guild(*self) + } + + /// Requests the guild over REST. + /// + /// Note that this will not be a complete guild, as REST does not send + /// all data with a guild retrieval. + #[inline] + pub fn get(&self) -> Result<PartialGuild> { + rest::get_guild(self.0) + } + /// Gets all integration of the guild. /// /// This performs a request over the REST API. #[inline] - pub fn get_integrations(&self) -> Result<Vec<Integration>> { + pub fn integrations(&self) -> Result<Vec<Integration>> { rest::get_guild_integrations(self.0) } @@ -339,16 +339,33 @@ impl GuildId { /// /// [Manage Guild]: permissions/struct.MANAGE_GUILD.html #[inline] - pub fn get_invites(&self) -> Result<Vec<RichInvite>> { + pub fn invites(&self) -> Result<Vec<RichInvite>> { rest::get_guild_invites(self.0) } + /// Kicks a [`Member`] from the guild. + /// + /// Requires the [Kick Members] permission. + /// + /// [`Member`]: struct.Member.html + /// [Kick Members]: permissions/constant.KICK_MEMBERS.html + #[inline] + pub fn kick<U: Into<UserId>>(&self, user_id: U) -> Result<()> { + rest::kick_member(self.0, user_id.into().0) + } + + /// Leaves the guild. + #[inline] + pub fn leave(&self) -> Result<PartialGuild> { + rest::leave_guild(self.0) + } + /// Gets a user's [`Member`] for the guild by Id. /// /// [`Guild`]: struct.Guild.html /// [`Member`]: struct.Member.html #[inline] - pub fn get_member<U: Into<UserId>>(&self, user_id: U) -> Result<Member> { + pub fn member<U: Into<UserId>>(&self, user_id: U) -> Result<Member> { rest::get_member(self.0, user_id.into().0) } @@ -360,11 +377,24 @@ impl GuildId { /// /// [`User`]: struct.User.html #[inline] - pub fn get_members<U>(&self, limit: Option<u64>, after: Option<U>) + pub fn members<U>(&self, limit: Option<u64>, after: Option<U>) -> Result<Vec<Member>> where U: Into<UserId> { rest::get_guild_members(self.0, limit, after.map(|x| x.into().0)) } + /// Moves a member to a specific voice channel. + /// + /// Requires the [Move Members] permission. + /// + /// [Move Members]: permissions/constant.MOVE_MEMBERS.html + pub fn move_member<C, U>(&self, user_id: U, channel_id: C) + -> Result<()> where C: Into<ChannelId>, U: Into<UserId> { + let mut map = Map::new(); + map.insert("channel_id".to_owned(), Value::Number(Number::from(channel_id.into().0))); + + rest::edit_member(self.0, user_id.into().0, &map) + } + /// Gets the number of [`Member`]s that would be pruned with the given /// number of days. /// @@ -372,7 +402,7 @@ impl GuildId { /// /// [`Member`]: struct.Member.html /// [Kick Members]: permissions/constant.KICK_MEMBERS.html - pub fn get_prune_count(&self, days: u16) -> Result<GuildPrune> { + pub fn prune_count(&self, days: u16) -> Result<GuildPrune> { let map = json!({ "days": days, }); @@ -380,46 +410,6 @@ impl GuildId { rest::get_guild_prune_count(self.0, &map) } - /// Retrieves the guild's webhooks. - /// - /// **Note**: Requires the [Manage Webhooks] permission. - /// - /// [Manage Webhooks]: permissions/constant.MANAGE_WEBHOOKS.html - #[inline] - pub fn get_webhooks(&self) -> Result<Vec<Webhook>> { - rest::get_guild_webhooks(self.0) - } - - /// Kicks a [`Member`] from the guild. - /// - /// Requires the [Kick Members] permission. - /// - /// [`Member`]: struct.Member.html - /// [Kick Members]: permissions/constant.KICK_MEMBERS.html - #[inline] - pub fn kick<U: Into<UserId>>(&self, user_id: U) -> Result<()> { - rest::kick_member(self.0, user_id.into().0) - } - - /// Leaves the guild. - #[inline] - pub fn leave(&self) -> Result<PartialGuild> { - rest::leave_guild(self.0) - } - - /// Moves a member to a specific voice channel. - /// - /// Requires the [Move Members] permission. - /// - /// [Move Members]: permissions/constant.MOVE_MEMBERS.html - pub fn move_member<C, U>(&self, user_id: U, channel_id: C) - -> Result<()> where C: Into<ChannelId>, U: Into<UserId> { - let mut map = Map::new(); - map.insert("channel_id".to_owned(), Value::Number(Number::from(channel_id.into().0))); - - rest::edit_member(self.0, user_id.into().0, &map) - } - /// Returns the Id of the shard associated with the guild. /// /// When the cache is enabled this will automatically retrieve the total @@ -501,6 +491,107 @@ impl GuildId { pub fn unban<U: Into<UserId>>(&self, user_id: U) -> Result<()> { rest::remove_ban(self.0, user_id.into().0) } + + /// Retrieves the guild's webhooks. + /// + /// **Note**: Requires the [Manage Webhooks] permission. + /// + /// [Manage Webhooks]: permissions/constant.MANAGE_WEBHOOKS.html + #[inline] + pub fn webhooks(&self) -> Result<Vec<Webhook>> { + rest::get_guild_webhooks(self.0) + } + + /// Alias of [`bans`]. + /// + /// [`bans`]: #method.bans + #[deprecated(since="0.1.5", note="Use `bans` instead.")] + #[inline] + pub fn get_bans(&self) -> Result<Vec<Ban>> { + self.bans() + } + + /// Alias of [`channels`]. + /// + /// [`channels`]: #method.channels + #[deprecated(since="0.1.5", note="Use `channels` instead.")] + #[inline] + pub fn get_channels(&self) -> Result<HashMap<ChannelId, GuildChannel>> { + self.channels() + } + + /// Alias of [`emoji`]. + /// + /// [`emoji`]: #method.emoji + #[deprecated(since="0.1.5", note="Use `emoji` instead.")] + #[inline] + pub fn get_emoji<E: Into<EmojiId>>(&self, emoji_id: E) -> Result<Emoji> { + self.emoji(emoji_id) + } + + /// Alias of [`emojis`]. + /// + /// [`emojis`]: #method.emojis + #[deprecated(since="0.1.5", note="Use `emojis` instead.")] + #[inline] + pub fn get_emojis(&self) -> Result<Vec<Emoji>> { + self.emojis() + } + + /// Alias of [`integrations`]. + /// + /// [`integrations`]: #method.integrations + #[deprecated(since="0.1.5", note="Use `integrations` instead.")] + #[inline] + pub fn get_integrations(&self) -> Result<Vec<Integration>> { + self.integrations() + } + + /// Alias of [`invites`]. + /// + /// [`invites`]: #method.invites + #[deprecated(since="0.1.5", note="Use `invites` instead.")] + #[inline] + pub fn get_invites(&self) -> Result<Vec<RichInvite>> { + self.invites() + } + + /// Alias of [`member`]. + /// + /// [`member`]: #method.member + #[deprecated(since="0.1.5", note="Use `member` instead.")] + #[inline] + pub fn get_member<U: Into<UserId>>(&self, user_id: U) -> Result<Member> { + self.member(user_id) + } + + /// Alias of [`members`]. + /// + /// [`members`]: #method.members + #[deprecated(since="0.1.5", note="Use `members` instead.")] + #[inline] + pub fn get_members<U>(&self, limit: Option<u64>, after: Option<U>) + -> Result<Vec<Member>> where U: Into<UserId> { + self.members(limit, after) + } + + /// Alias of [`prune_count`]. + /// + /// [`prune_count`]: #method.prune_count + #[deprecated(since="0.1.5", note="Use `prune_count` instead.")] + #[inline] + pub fn get_prune_count(&self, days: u16) -> Result<GuildPrune> { + self.prune_count(days) + } + + /// Alias of [`webhooks`]. + /// + /// [`webhooks`]: #method.webhooks + #[deprecated(since="0.1.5", note="Use `webhooks` instead.")] + #[inline] + pub fn get_webhooks(&self) -> Result<Vec<Webhook>> { + self.webhooks() + } } impl Display for GuildId { |