aboutsummaryrefslogtreecommitdiff
path: root/src/model
diff options
context:
space:
mode:
authorAustin Hellyer <[email protected]>2016-12-29 11:49:28 -0800
committerAustin Hellyer <[email protected]>2016-12-29 11:49:28 -0800
commitfa4952b30fec8f62c9882c2c9ef9836eae2cd9a9 (patch)
treecae13f61f6634183ff73c24703c66d57b6b1d8e8 /src/model
parentAdd user static avatar url methods (diff)
downloadserenity-fa4952b30fec8f62c9882c2c9ef9836eae2cd9a9.tar.xz
serenity-fa4952b30fec8f62c9882c2c9ef9836eae2cd9a9.zip
Use conditional blocks over macros
Diffstat (limited to 'src/model')
-rw-r--r--src/model/channel.rs60
-rw-r--r--src/model/guild.rs55
-rw-r--r--src/model/id.rs5
-rw-r--r--src/model/invite.rs20
4 files changed, 84 insertions, 56 deletions
diff --git a/src/model/channel.rs b/src/model/channel.rs
index 90fcc50..c56ebbe 100644
--- a/src/model/channel.rs
+++ b/src/model/channel.rs
@@ -438,7 +438,8 @@ impl Message {
/// [Manage Messages]: permissions/constant.MANAGE_MESSAGES.html
#[cfg(feature="methods")]
pub fn delete(&self) -> Result<()> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::MANAGE_MESSAGES;
let is_author = self.author.id == CACHE.read().unwrap().user.id;
let has_perms = utils::user_has_perms(self.channel_id, req)?;
@@ -446,7 +447,7 @@ impl Message {
if !is_author && !has_perms {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
rest::delete_message(self.channel_id.0, self.id.0)
}
@@ -466,13 +467,14 @@ impl Message {
/// [Manage Messages]: permissions/constant.MANAGE_MESSAGES.html
#[cfg(feature="methods")]
pub fn delete_reactions(&self) -> Result<()> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::MANAGE_MESSAGES;
if !utils::user_has_perms(self.channel_id, req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
rest::delete_message_reactions(self.channel_id.0, self.id.0)
}
@@ -508,11 +510,12 @@ impl Message {
return Err(Error::Client(ClientError::MessageTooLong(length_over)));
}
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
if self.author.id != CACHE.read().unwrap().user.id {
return Err(Error::Client(ClientError::InvalidUser));
}
- }}
+ }
let mut map = ObjectBuilder::new().insert("content", new_content);
@@ -611,13 +614,14 @@ impl Message {
/// [Manage Messages]: permissions/constant.MANAGE_MESSAGES.html
#[cfg(feature="methods")]
pub fn pin(&self) -> Result<()> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::MANAGE_MESSAGES;
if !utils::user_has_perms(self.channel_id, req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
rest::pin_message(self.channel_id.0, self.id.0)
}
@@ -638,13 +642,14 @@ impl Message {
/// [permissions]: permissions
#[cfg(feature="methods")]
pub fn react<R: Into<ReactionType>>(&self, reaction_type: R) -> Result<()> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::ADD_REACTIONS;
if !utils::user_has_perms(self.channel_id, req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
rest::create_reaction(self.channel_id.0,
self.id.0,
@@ -679,13 +684,14 @@ impl Message {
return Err(Error::Client(ClientError::MessageTooLong(length_over)));
}
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::SEND_MESSAGES;
if !utils::user_has_perms(self.channel_id, req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
let mut gen = self.author.mention();
gen.push_str(": ");
@@ -714,13 +720,14 @@ impl Message {
/// [Manage Messages]: permissions/constant.MANAGE_MESSAGES.html
#[cfg(feature="methods")]
pub fn unpin(&self) -> Result<()> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::MANAGE_MESSAGES;
if !utils::user_has_perms(self.channel_id, req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
rest::unpin_message(self.channel_id.0, self.id.0)
}
@@ -782,11 +789,12 @@ impl PrivateChannel {
/// [`ClientError::InvalidUser`]: ../client/enum.ClientError.html#variant.InvalidOperationAsUser
#[cfg(feature="methods")]
pub fn delete_messages(&self, message_ids: &[MessageId]) -> Result<()> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
if !CACHE.read().unwrap().user.bot {
return Err(Error::Client(ClientError::InvalidOperationAsUser));
}
- }}
+ }
let ids: Vec<u64> = message_ids.into_iter()
.map(|message_id| message_id.0)
@@ -881,13 +889,14 @@ impl GuildChannel {
#[cfg(feature="methods")]
pub fn create_invite<F>(&self, f: F) -> Result<RichInvite>
where F: FnOnce(CreateInvite) -> CreateInvite {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::CREATE_INVITE;
if !utils::user_has_perms(self.id, req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
let map = f(CreateInvite::default()).0.build();
@@ -925,13 +934,14 @@ impl GuildChannel {
/// Deletes this channel, returning the channel on a successful deletion.
#[cfg(feature="methods")]
pub fn delete(&self) -> Result<Channel> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::MANAGE_CHANNELS;
if !utils::user_has_perms(self.id, req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
rest::delete_channel(self.id.0)
}
@@ -953,13 +963,14 @@ impl GuildChannel {
pub fn edit<F>(&mut self, f: F) -> Result<()>
where F: FnOnce(EditChannel) -> EditChannel {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::MANAGE_CHANNELS;
if !utils::user_has_perms(self.id, req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
let map = ObjectBuilder::new()
.insert("name", &self.name)
@@ -1017,13 +1028,14 @@ impl GuildChannel {
return Err(Error::Client(ClientError::MessageTooLong(length_over)));
}
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::SEND_MESSAGES;
if !utils::user_has_perms(self.id, req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
let map = ObjectBuilder::new()
.insert("content", content)
diff --git a/src/model/guild.rs b/src/model/guild.rs
index aabbb06..ec492d3 100644
--- a/src/model/guild.rs
+++ b/src/model/guild.rs
@@ -239,13 +239,14 @@ impl Guild {
return Err(Error::Client(ClientError::DeleteMessageDaysAmount(delete_message_days)));
}
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::BAN_MEMBERS;
if !self.has_perms(req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
rest::ban_user(self.id.0, user.into().0, delete_message_days)
}
@@ -264,13 +265,14 @@ impl Guild {
/// [Ban Members]: permissions/constant.BAN_MEMBERS.html
#[cfg(feature="methods")]
pub fn bans(&self) -> Result<Vec<Ban>> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::BAN_MEMBERS;
if !self.has_perms(req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
rest::get_bans(self.id.0)
}
@@ -300,13 +302,14 @@ impl Guild {
#[cfg(feature="methods")]
pub fn create_channel(&mut self, name: &str, kind: ChannelType)
-> Result<Channel> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::MANAGE_CHANNELS;
if !self.has_perms(req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
let map = ObjectBuilder::new()
.insert("name", name)
@@ -334,13 +337,14 @@ impl Guild {
#[cfg(feature="methods")]
pub fn create_role<F>(&self, f: F) -> Result<Role>
where F: FnOnce(EditRole) -> EditRole {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::MANAGE_ROLES;
if !self.has_perms(req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
let role = rest::create_role(self.id.0)?;
let map = f(EditRole::new(&role)).0.build();
@@ -406,13 +410,14 @@ impl Guild {
/// [`ClientError::InvalidUser`]: ../client/enum.ClientError.html#variant.InvalidUser
#[cfg(feature="methods")]
pub fn delete(&self) -> Result<PartialGuild> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
if self.owner_id != CACHE.read().unwrap().user.id {
let req = permissions::MANAGE_GUILD;
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
rest::delete_guild(self.id.0)
}
@@ -434,13 +439,14 @@ impl Guild {
#[cfg(feature="methods")]
pub fn edit<F>(&mut self, f: F) -> Result<()>
where F: FnOnce(EditGuild) -> EditGuild {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::MANAGE_GUILD;
if !self.has_perms(req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
let map = f(EditGuild::default()).0.build();
@@ -482,13 +488,14 @@ impl Guild {
/// [Change Nickname]: permissions/constant.CHANGE_NICKNAME.html
#[cfg(feature="methods")]
pub fn edit_nickname(&self, new_nickname: Option<&str>) -> Result<()> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::CHANGE_NICKNAME;
if !self.has_perms(req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
rest::edit_nickname(self.id.0, new_nickname)
}
@@ -514,13 +521,14 @@ impl Guild {
/// [Manage Guild]: permissions/constant.MANAGE_GUILD.html
#[cfg(feature="methods")]
pub fn get_invites(&self) -> Result<Vec<RichInvite>> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::MANAGE_GUILD;
if !self.has_perms(req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
rest::get_guild_invites(self.id.0)
}
@@ -725,13 +733,14 @@ impl Guild {
/// [Kick Members]: permissions/constant.KICK_MEMBERS.html
#[cfg(feature="methods")]
pub fn prune_count(&self, days: u16) -> Result<GuildPrune> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::KICK_MEMBERS;
if !self.has_perms(req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
let map = ObjectBuilder::new()
.insert("days", days)
@@ -764,13 +773,14 @@ impl Guild {
/// [Kick Members]: permissions/constant.KICK_MEMBERS.html
#[cfg(feature="methods")]
pub fn start_prune(&self, days: u16) -> Result<GuildPrune> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::KICK_MEMBERS;
if !self.has_perms(req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
let map = ObjectBuilder::new()
.insert("days", days)
@@ -793,13 +803,14 @@ impl Guild {
/// [Ban Members]: permissions/constant.BAN_MEMBERS.html
#[cfg(feature="methods")]
pub fn unban<U: Into<UserId>>(&self, user: U) -> Result<()> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::BAN_MEMBERS;
if !self.has_perms(req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
rest::remove_ban(self.id.0, user.into().0)
}
diff --git a/src/model/id.rs b/src/model/id.rs
index b6cece6..aec5bfe 100644
--- a/src/model/id.rs
+++ b/src/model/id.rs
@@ -19,11 +19,12 @@ impl ChannelId {
/// requested over REST.
#[cfg(feature="methods")]
pub fn get(&self) -> Result<Channel> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
if let Some(channel) = CACHE.read().unwrap().get_channel(*self) {
return Ok(channel.clone_inner());
}
- }}
+ }
rest::get_channel(self.0)
}
diff --git a/src/model/invite.rs b/src/model/invite.rs
index 4742b39..0d68ff0 100644
--- a/src/model/invite.rs
+++ b/src/model/invite.rs
@@ -32,11 +32,12 @@ impl Invite {
/// [permission]: permissions/index.html
#[cfg(feature="methods")]
pub fn accept(&self) -> Result<Invite> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
if CACHE.read().unwrap().user.bot {
return Err(Error::Client(ClientError::InvalidOperationAsBot));
}
- }}
+ }
rest::accept_invite(&self.code)
}
@@ -55,13 +56,14 @@ impl Invite {
/// [permission]: permissions/index.html
#[cfg(feature="methods")]
pub fn delete(&self) -> Result<Invite> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::MANAGE_GUILD;
if !utils::user_has_perms(self.channel.id, req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
rest::delete_invite(&self.code)
}
@@ -89,11 +91,12 @@ impl RichInvite {
/// [`rest::accept_invite`]: ../client/rest/fn.accept_invite.html
#[cfg(feature="methods")]
pub fn accept(&self) -> Result<Invite> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
if CACHE.read().unwrap().user.bot {
return Err(Error::Client(ClientError::InvalidOperationAsBot));
}
- }}
+ }
rest::accept_invite(&self.code)
}
@@ -117,13 +120,14 @@ impl RichInvite {
/// [permission]: permissions/index.html
#[cfg(feature="methods")]
pub fn delete(&self) -> Result<Invite> {
- feature_cache_enabled! {{
+ #[cfg(feature="cache")]
+ {
let req = permissions::MANAGE_GUILD;
if !utils::user_has_perms(self.channel.id, req)? {
return Err(Error::Client(ClientError::InvalidPermissions(req)));
}
- }}
+ }
rest::delete_invite(&self.code)
}