diff options
| author | Maid Dog <[email protected]> | 2018-03-11 03:00:01 -0500 |
|---|---|---|
| committer | Zeyla Hellyer <[email protected]> | 2018-05-27 18:16:11 -0700 |
| commit | 8e2d86f43beb060f8fadc0cb970e976370891c9d (patch) | |
| tree | 2bc7630734bfcb508700dc600371777c72888aa6 /src/model | |
| parent | Voice fixes, better API adherence, bitrate control, documentation (diff) | |
| download | serenity-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.rs | 15 |
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 { |