use crate::{Client, Error, BASE_URL};
use adiscord_types::api::message::Message;
use reqwest::StatusCode;
use serde::Serialize;
#[derive(Serialize)]
pub struct Query {
pub around: Option<String>,
pub before: Option<String>,
pub after: Option<String>,
pub limit: Option<u8>,
}
impl Client {
pub async fn get_messages(
&self,
index: &str,
query: Option<Query>,
) -> Result<Vec<Message>, Error> {
let response = self
.client
.get(format!("{}/channels/{index}/messages", BASE_URL))
.query(&query)
.send()
.await
.unwrap();
let status = response.status();
match status {
StatusCode::OK => {
let body: Vec<Message> = response.json().await.unwrap();
Ok(body)
}
_ => {
let body: Error = response.json().await.unwrap();
Err(body)
}
}
}
}