diff options
Diffstat (limited to 'src/utils/builder/execute_webhook.rs')
| -rw-r--r-- | src/utils/builder/execute_webhook.rs | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/src/utils/builder/execute_webhook.rs b/src/utils/builder/execute_webhook.rs deleted file mode 100644 index ee898de..0000000 --- a/src/utils/builder/execute_webhook.rs +++ /dev/null @@ -1,129 +0,0 @@ -use serde_json::Value; -use std::default::Default; -use ::internal::prelude::*; - -/// A builder to create the inner content of a [`Webhook`]'s execution. -/// -/// This is a structured way of cleanly creating the inner execution payload, -/// to reduce potential argument counts. -/// -/// Refer to the documentation for [`execute_webhook`] on restrictions with -/// execution payloads and its fields. -/// -/// # Examples -/// -/// Creating two embeds, and then sending them as part of the delivery -/// payload of [`Webhook::execute`]: -/// -/// ```rust,ignore -/// use serenity::client::rest; -/// use serenity::model::Embed; -/// use serenity::utils::Colour; -/// -/// let id = 245037420704169985; -/// let token = "ig5AO-wdVWpCBtUUMxmgsWryqgsW3DChbKYOINftJ4DCrUbnkedoYZD0VOH1QLr-S3sV"; -/// -/// let webhook = rest::get_webhook_with_token(id, token) -/// .expect("valid webhook"); -/// -/// let website = Embed::fake(|e| e -/// .title("The Rust Language Website") -/// .description("Rust is a systems programming language.") -/// .colour(Colour::from_rgb(222, 165, 132))); -/// -/// let resources = Embed::fake(|e| e -/// .title("Rust Resources") -/// .description("A few resources to help with learning Rust") -/// .colour(0xDEA584) -/// .field(|f| f -/// .inline(false) -/// .name("The Rust Book") -/// .value("A comprehensive resource for all topics related to Rust")) -/// .field(|f| f -/// .inline(false) -/// .name("Rust by Example") -/// .value("A collection of Rust examples on topics, useable in-browser"))); -/// -/// let _ = webhook.execute(|w| w -/// .content("Here's some information on Rust:") -/// .embeds(vec![website, resources])); -/// ``` -/// -/// [`Webhook`]: ../../model/struct.Webhook.html -/// [`Webhook::execute`]: ../../model/struct.Webhook.html#method.execute -/// [`execute_webhook`]: ../../client/rest/fn.execute_webhook.html -#[derive(Clone, Debug)] -pub struct ExecuteWebhook(pub JsonMap); - -impl ExecuteWebhook { - /// Override the default avatar of the webhook with an image URL. - pub fn avatar_url(mut self, avatar_url: &str) -> Self { - self.0.insert("avatar_url".to_owned(), Value::String(avatar_url.to_owned())); - - self - } - - /// Set the content of the message. - /// - /// Note that when setting at least one embed via [`embeds`], this may be - /// omitted. - /// - /// [`embeds`]: #method.embeds - pub fn content(mut self, content: &str) -> Self { - self.0.insert("content".to_owned(), Value::String(content.to_owned())); - - self - } - - /// Set the embeds associated with the message. - /// - /// This should be used in combination with [`Embed::fake`], creating one - /// or more fake embeds to send to the API. - /// - /// # Examples - /// - /// Refer to the [struct-level documentation] for an example on how to use - /// embeds. - /// - /// [`Embed::fake`]: ../../model/struct.Embed.html#method.fake - /// [`Webhook::execute`]: ../../model/struct.Webhook.html#method.execute - /// [struct-level documentation]: #examples - pub fn embeds(mut self, embeds: Vec<Value>) -> Self { - self.0.insert("embeds".to_owned(), Value::Array(embeds)); - - self - } - - /// Whether the message is a text-to-speech message. - /// - /// Think carefully before setting this to `true`. - pub fn tts(mut self, tts: bool) -> Self { - self.0.insert("tts".to_owned(), Value::Bool(tts)); - - self - } - - /// Override the default username of the webhook. - pub fn username(mut self, username: &str) -> Self { - self.0.insert("username".to_owned(), Value::String(username.to_owned())); - - self - } -} - -impl Default for ExecuteWebhook { - /// Returns a default set of values for a [`Webhook`] execution. - /// - /// The only default value is [`tts`] being set to `true`. In the event that - /// there is a bug that Discord defaults `tts` to `true`, at least - /// serenity won't be a part of it. - /// - /// [`Webhook`]: ../../model/struct.Webhook.html - /// [`tts`]: #method.tts - fn default() -> ExecuteWebhook { - let mut map = Map::new(); - map.insert("tts".to_owned(), Value::Bool(false)); - - ExecuteWebhook(map) - } -} |