use anyhow::Result;
use chrono::prelude::*;
use twapi_v2::api::{
BearerAuthentication, execute_twitter,
post_2_dm_conversations::{self, Message},
};
#[tokio::test]
async fn test_post_2_dm_conversations() -> Result<()> {
let participant_ids = match std::env::var("PARTICIPANT_IDS") {
Ok(participant_ids) => participant_ids
.split(",")
.collect::<Vec<&str>>()
.into_iter()
.map(|it| it.to_owned())
.collect::<Vec<String>>(),
_ => return Ok(()),
};
let now = Utc::now();
let body = post_2_dm_conversations::Body {
conversation_type: post_2_dm_conversations::ConversationType::Group,
message: Message {
text: Some(format!("now! {}", now)),
..Default::default()
},
participant_ids,
..Default::default()
};
let bearer_code = std::env::var("BEARER_CODE").unwrap_or_default();
let bearer_auth = BearerAuthentication::new(bearer_code);
let (res, _rate_limit) = execute_twitter::<serde_json::Value>(
|| post_2_dm_conversations::Api::new(body.clone()).build(&bearer_auth),
&None,
)
.await?;
println!("{}", serde_json::to_string(&res).unwrap());
let response = serde_json::from_value::<post_2_dm_conversations::Response>(res)?;
assert_eq!(response.is_empty_extra(), true);
Ok(())
}