start re-doing send()
This commit is contained in:
parent
9b5caf6392
commit
e41563b101
|
@ -1,11 +1,6 @@
|
||||||
pub mod messages {
|
pub mod messages {
|
||||||
use reqwest::{Client, Response};
|
|
||||||
use serde_json::to_string;
|
|
||||||
use std::io::Read;
|
|
||||||
|
|
||||||
use crate::api::limits::Limits;
|
use crate::api::limits::Limits;
|
||||||
use crate::api::types::{DiscordFileAttachment, Message, User};
|
use crate::api::types::{Message, PartialDiscordFileAttachment, User};
|
||||||
use crate::errors::InstanceServerError;
|
|
||||||
use crate::limit::LimitedRequester;
|
use crate::limit::LimitedRequester;
|
||||||
|
|
||||||
impl Message {
|
impl Message {
|
||||||
|
@ -20,76 +15,21 @@ pub mod messages {
|
||||||
# Errors
|
# Errors
|
||||||
* [`InstanceServerError`] - If the message cannot be sent.
|
* [`InstanceServerError`] - If the message cannot be sent.
|
||||||
*/
|
*/
|
||||||
pub async fn send(
|
|
||||||
url_api: &String,
|
|
||||||
token: &String,
|
|
||||||
message: &Message,
|
|
||||||
files: Option<Vec<DiscordFileAttachment>>,
|
|
||||||
limits_user: &mut Limits,
|
|
||||||
limits_instance: &mut Limits,
|
|
||||||
requester: &mut LimitedRequester,
|
|
||||||
) -> Result<Response, InstanceServerError> {
|
|
||||||
if files.is_some() {
|
|
||||||
return Self::send_with_attachments(
|
|
||||||
url_api,
|
|
||||||
token,
|
|
||||||
message,
|
|
||||||
files,
|
|
||||||
limits_user,
|
|
||||||
limits_instance,
|
|
||||||
requester,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
let request = Client::new()
|
|
||||||
.post(format!(
|
|
||||||
"{}/channels/{}/messages",
|
|
||||||
url_api, message.channel_id
|
|
||||||
))
|
|
||||||
.body(to_string(message).unwrap())
|
|
||||||
.bearer_auth(token);
|
|
||||||
match requester
|
|
||||||
.send_request(
|
|
||||||
request,
|
|
||||||
crate::api::limits::LimitType::Channel,
|
|
||||||
limits_instance,
|
|
||||||
limits_user,
|
|
||||||
)
|
|
||||||
.await
|
|
||||||
{
|
|
||||||
Ok(result) => Ok(result),
|
|
||||||
Err(e) => Err(e),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn send_with_attachments(
|
pub async fn send<'a>(
|
||||||
url_api: &String,
|
url_api: &String,
|
||||||
token: &String,
|
message: &mut Message,
|
||||||
message: &Message,
|
files: Option<Vec<PartialDiscordFileAttachment>>,
|
||||||
files: Option<Vec<DiscordFileAttachment>>,
|
user: &mut User<'a>,
|
||||||
limits_user: &mut Limits,
|
|
||||||
limits_instance: &mut Limits,
|
limits_instance: &mut Limits,
|
||||||
requester: &mut LimitedRequester,
|
requester: &mut LimitedRequester,
|
||||||
) -> Result<Response, InstanceServerError> {
|
) {
|
||||||
let form = reqwest::multipart::Form::new();
|
let token = user.token();
|
||||||
|
let mut limits = &mut user.rate_limits;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> User<'a> {
|
impl<'a> User<'a> {
|
||||||
pub async fn send_message(
|
pub async fn send_message() {}
|
||||||
&mut self,
|
|
||||||
message: &Message,
|
|
||||||
files: Option<Vec<DiscordFileAttachment>>,
|
|
||||||
) -> Result<Response, InstanceServerError> {
|
|
||||||
Message::send(
|
|
||||||
&self.belongs_to().urls.get_api().to_string(),
|
|
||||||
&self.token(),
|
|
||||||
message,
|
|
||||||
files,
|
|
||||||
self.rate_limits.get_as_mut(),
|
|
||||||
&mut self.belongs_to.limits.get_as_mut(),
|
|
||||||
&mut LimitedRequester::new().await,
|
|
||||||
)
|
|
||||||
.await
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue