use crate::common::*;
use crate::user::UserID;
use crate::{auth, links};
use super::*;
pub async fn show(id: u64, token: &auth::Token) -> Result<Response<DirectMessage>, error::Error> {
let params = ParamList::default().add_param("id", id.to_string());
let req = get(links::direct::SHOW, token, Some(¶ms));
request_with_json_response(req).await
}
pub fn received(token: &auth::Token) -> Timeline {
Timeline::new(links::direct::RECEIVED, None, token)
}
pub fn sent(token: &auth::Token) -> Timeline {
Timeline::new(links::direct::SENT, None, token)
}
pub async fn send<T: Into<UserID>>(
to: T,
text: CowStr,
token: &auth::Token,
) -> Result<Response<DirectMessage>, error::Error> {
let params = ParamList::new()
.add_user_param(to.into())
.add_param("text", text);
let req = post(links::direct::SEND, token, Some(¶ms));
request_with_json_response(req).await
}
pub async fn delete(id: u64, token: &auth::Token) -> Result<Response<DirectMessage>, error::Error> {
let params = ParamList::new().add_param("id", id.to_string());
let req = post(links::direct::DELETE, token, Some(¶ms));
request_with_json_response(req).await
}
pub fn conversations(token: &auth::Token) -> ConversationTimeline {
ConversationTimeline::new(token)
}