aboutsummaryrefslogtreecommitdiff
path: root/src/model
diff options
context:
space:
mode:
authorMaid Dog <[email protected]>2018-03-11 03:00:01 -0500
committerZeyla Hellyer <[email protected]>2018-05-27 18:16:11 -0700
commit8e2d86f43beb060f8fadc0cb970e976370891c9d (patch)
tree2bc7630734bfcb508700dc600371777c72888aa6 /src/model
parentVoice fixes, better API adherence, bitrate control, documentation (diff)
downloadserenity-8e2d86f43beb060f8fadc0cb970e976370891c9d.tar.xz
serenity-8e2d86f43beb060f8fadc0cb970e976370891c9d.zip
Permit sending files through the `CreateMessage` builder.
Diffstat (limited to 'src/model')
-rw-r--r--src/model/channel/channel_id.rs15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/model/channel/channel_id.rs b/src/model/channel/channel_id.rs
index 78bfbd7..f6d9963 100644
--- a/src/model/channel/channel_id.rs
+++ b/src/model/channel/channel_id.rs
@@ -504,13 +504,24 @@ impl ChannelId {
#[cfg(feature = "utils")]
pub fn send_message<F>(&self, f: F) -> Result<Message>
where F: FnOnce(CreateMessage) -> CreateMessage {
- let msg = f(CreateMessage::default());
+ let mut msg = f(CreateMessage::default());
+
+ if !msg.2.is_empty() {
+ if let Some(e) = msg.0.remove(&"embed") {
+ msg.0.insert("payload_json", json!({ "embed": e }));
+ }
+ }
+
let map = utils::vecmap_to_json_map(msg.0);
Message::check_content_length(&map)?;
Message::check_embed_length(&map)?;
- let message = http::send_message(self.0, &Value::Object(map))?;
+ let message = if msg.2.is_empty() {
+ http::send_message(self.0, &Value::Object(map))?
+ } else {
+ http::send_files(self.0, msg.2, map)?
+ };
if let Some(reactions) = msg.1 {
for reaction in reactions {