diff --git a/src/api/channels/messages.rs b/src/api/channels/messages.rs index 5c6f633..668e150 100644 --- a/src/api/channels/messages.rs +++ b/src/api/channels/messages.rs @@ -1,9 +1,10 @@ pub mod messages { use reqwest::{Client, Response}; use serde_json::to_string; + use std::io::Read; use crate::api::limits::Limits; - use crate::api::types::{File, Message, User}; + use crate::api::types::{DiscordFileAttachment, Message, User}; use crate::errors::InstanceServerError; use crate::limit::LimitedRequester; @@ -23,7 +24,7 @@ pub mod messages { url_api: &String, token: &String, message: &Message, - files: Option>, + files: Option>, limits_user: &mut Limits, limits_instance: &mut Limits, requester: &mut LimitedRequester, @@ -55,7 +56,7 @@ pub mod messages { pub async fn send_message( &mut self, message: &Message, - files: Option>, + files: Option>, ) -> Result { Message::send( &self.belongs_to().urls.get_api().to_string(), diff --git a/src/api/types.rs b/src/api/types.rs index 7b3f240..0fa51f2 100644 --- a/src/api/types.rs +++ b/src/api/types.rs @@ -4,6 +4,8 @@ https://discord.com/developers/docs . I do not feel like re-documenting all of this, as everything is already perfectly explained there. */ +use std::fs::File; + use serde::{Deserialize, Serialize}; use crate::{api::limits::Limits, instance::Instance}; @@ -840,7 +842,27 @@ pub struct GatewayPayload { impl WebSocketEvent for GatewayPayload {} -pub struct File { +pub struct DiscordFileAttachment { pub name: String, - pub path: String, + pub filename: String, + pub file: File, +} + +impl DiscordFileAttachment { + pub fn new(filenames: &Vec, files: Vec) { + //-> Vec { + if filenames.len() != files.len() { + panic!("Your 'filenames' Vector has either more or less elements than your 'files' Vector.") + } + let mut return_vec: Vec = Vec::new(); + let mut counter = 0; + /*for _ in 0..files.len() { + return_vec.push(DiscordFileAttachment { + name: format!("files[{}]", counter.to_string()), + filename: filenames.iter().next().unwrap().to_string(), + file: files.get(0).unwrap(), + }); + } + return_vec*/ + } }