1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
#[cfg(feature = "model")]
use crate::builder::EditSticker;
#[cfg(feature = "model")]
use crate::http::Http;
#[cfg(feature = "model")]
use crate::internal::prelude::*;
#[cfg(feature = "model")]
use crate::model::prelude::*;
#[cfg(feature = "model")]
impl StickerId {
/// Delete a guild sticker.
///
/// **Note**: The [Manage Emojis and Stickers] permission is required.
///
/// # Errors
///
/// Returns [`Error::Http`] if the current user lacks permission.
///
/// [Manage Emojis and Stickers]: crate::model::permissions::Permissions::MANAGE_EMOJIS_AND_STICKERS
pub async fn delete(&self, http: impl AsRef<Http>, guild_id: impl Into<GuildId>) -> Result<()> {
guild_id.into().delete_sticker(http, self.0).await
}
/// Requests the sticker via the REST API to get a [`Sticker`] with all
/// details.
///
/// # Errors
///
/// Returns [`Error::Http`] if a [`Sticker`] with that [`StickerId`] does
/// not exist, or is otherwise unavailable.
pub async fn to_sticker(&self, http: impl AsRef<Http>) -> Result<Sticker> {
http.as_ref().get_sticker(self.0).await
}
/// Edits the sticker.
///
/// **Note**: The [Manage Emojis and Stickers] permission is required.
///
/// # Errors
///
/// Returns [`Error::Http`] if the current user lacks permission,
/// or if invalid edits are given.
///
/// [Manage Emojis and Stickers]: crate::model::permissions::Permissions::MANAGE_EMOJIS_AND_STICKERS
pub async fn edit<F>(
&self,
http: impl AsRef<Http>,
guild_id: impl Into<GuildId>,
f: F,
) -> Result<Sticker>
where
F: FnOnce(&mut EditSticker) -> &mut EditSticker,
{
guild_id.into().edit_sticker(http, self.0, f).await
}
}