Skip to content

Commit

Permalink
twiq: Add twitter user api example
Browse files Browse the repository at this point in the history
  • Loading branch information
bouzuya committed Aug 8, 2022
1 parent 27eef65 commit 670fe79
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
1 change: 1 addition & 0 deletions twiq/_env
@@ -0,0 +1 @@
TWITTER_BEARER_TOKEN=
31 changes: 31 additions & 0 deletions twiq/crates/domain/src/lib.rs
@@ -1,5 +1,7 @@
#[cfg(test)]
mod tests {
use reqwest::{Client, Method};

#[tokio::test]
async fn it_works() -> anyhow::Result<()> {
#[derive(Debug, serde::Deserialize)]
Expand All @@ -11,4 +13,33 @@ mod tests {
assert_eq!(json.date, "2022-08-07");
Ok(())
}

#[tokio::test]
async fn get_user() -> anyhow::Result<()> {
#[derive(Debug, serde::Deserialize, serde::Serialize)]
struct UserResponse {
data: UserResponseData,
}
#[derive(Debug, serde::Deserialize, serde::Serialize)]
struct UserResponseData {
id: String,
name: String,
username: String,
}

let bearer_token = std::env::var("TWITTER_BEARER_TOKEN")?;
let url = format!("https://api.twitter.com/2/users/by/username/{}", "bouzuya");
let response = Client::builder()
.build()?
.request(Method::GET, url)
.bearer_auth(bearer_token)
.send()
.await?;
let json: UserResponse = response.json().await?;
assert_eq!(json.data.id, "125962981");
assert_eq!(json.data.name, "bouzuya");
assert_eq!(json.data.username, "bouzuya");
assert_ne!(serde_json::to_string(&json)?, "");
Ok(())
}
}

0 comments on commit 670fe79

Please sign in to comment.