diff options
author | Teddy Wing | 2021-05-29 16:37:09 +0200 |
---|---|---|
committer | Teddy Wing | 2021-05-29 16:37:09 +0200 |
commit | 33a08a9159379588871442672f7c7362ba352501 (patch) | |
tree | 2a32f54416051ce4d924afad8bda7bf7e2fa46a2 /src/github.rs | |
parent | 1a9a3ecf18cd71898be230e2045b2d907f8fcdd7 (diff) | |
download | reflectub-33a08a9159379588871442672f7c7362ba352501.tar.bz2 |
Split GitHub API request into separate files
Diffstat (limited to 'src/github.rs')
-rw-r--r-- | src/github.rs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/github.rs b/src/github.rs new file mode 100644 index 0000000..bf42fc8 --- /dev/null +++ b/src/github.rs @@ -0,0 +1,36 @@ +use reqwest::blocking::ClientBuilder; + +use crate::repo::Repo; + + +const USER_AGENT: &'static str = concat!( + env!("CARGO_PKG_NAME"), + "/", + env!("CARGO_PKG_VERSION"), +); + + +pub fn fetch_repos() -> Result<Vec<Repo>, Box<dyn std::error::Error>> { + let mut headers = reqwest::header::HeaderMap::new(); + headers.insert("Accept", "application/vnd.github.v3+json".parse().unwrap()); + + let client = ClientBuilder::new() + .user_agent(USER_AGENT) + .default_headers(headers) + .build() + .unwrap(); + + let repos = client.request( + reqwest::Method::GET, + format!( + "https://api.github.com/users/{}/repos", + "teddywing", + ), + ) + .send() + .unwrap() + .json::<Vec<Repo>>() + .unwrap(); + + Ok(repos) +} |