aboutsummaryrefslogtreecommitdiffstats
path: root/src/client.rs
diff options
context:
space:
mode:
authorTeddy Wing2020-08-01 15:32:17 +0200
committerTeddy Wing2020-08-01 15:32:17 +0200
commitfdc1cc7bc3d237ef4976f9f9d2ffc09b7ba164d5 (patch)
tree4dc68f07d4a2e7ad8193f2b5f9a90c9fe6792aec /src/client.rs
parentb218abebdf8a0aed73bfe6f61ab22e51a0f2f43c (diff)
downloadgit-suggestion-fdc1cc7bc3d237ef4976f9f9d2ffc09b7ba164d5.tar.bz2
Move library to a separate crate
Keep the binaries in the root crate, and add a new crate for the `github-suggestion` library. I want to add some library code to the CLI programs to extract common functionality between the different binaries.
Diffstat (limited to 'src/client.rs')
-rw-r--r--src/client.rs58
1 files changed, 0 insertions, 58 deletions
diff --git a/src/client.rs b/src/client.rs
deleted file mode 100644
index c6ae1f1..0000000
--- a/src/client.rs
+++ /dev/null
@@ -1,58 +0,0 @@
-use github_rs::client::{Executor, Github};
-use serde_json::Value;
-use thiserror::Error;
-
-use crate::suggestion::Suggestion;
-
-
-#[derive(Debug, Error)]
-pub enum Error {
- #[error("GitHub client error: {0}")]
- Github(String),
-
- #[error("Unable to deserialize")]
- Deserialize(#[from] serde_json::error::Error),
-}
-
-
-pub struct Client<'a> {
- client: Github,
- owner: &'a str,
- repo: &'a str,
-}
-
-impl<'a> Client<'a> {
- pub fn new(
- token: &str,
- owner: &'a str, repo: &'a str,
- ) -> Result<Self, Error> {
- let client = match Github::new(&token) {
- Ok(g) => g,
- Err(e) => return Err(Error::Github(e.to_string())),
- };
-
- Ok(Client { client, owner, repo })
- }
-
- pub fn fetch(&self, id: &str) -> Result<Suggestion, Error> {
- let response = self.client
- .get()
- .repos()
- .owner(self.owner)
- .repo(self.repo)
- .pulls()
- .comments()
- .id(id)
- .execute::<Value>();
-
- match response {
- Ok((_, _, Some(json))) => {
- let suggestion = serde_json::from_value(json)?;
-
- Ok(suggestion)
- },
- Ok((_, _, None)) => Err(Error::Github("no response".to_owned())),
- Err(e) => Err(Error::Github(e.to_string())),
- }
- }
-}