summaryrefslogtreecommitdiff
path: root/crates/bot-http/src/lib.rs
diff options
context:
space:
mode:
authorseth <[email protected]>2024-08-16 22:14:16 -0400
committerGitHub <[email protected]>2024-08-17 02:14:16 +0000
commitbbc00edc6508ea1910c4d9e6a272f7859900950d (patch)
tree538fe23940cb6bca8afa48059e502bfa7d5608cd /crates/bot-http/src/lib.rs
parent66ea6f8c225cc2273cfbfb1b948604c170a78e8c (diff)
end of summer refactor (#31)
* crates: `bot-*` -> `discord-bot` I didn't really need all these crates to be split :/ * discord-bot: revamp http impl also handles the new errors reported by teawieAPI * crates: split http backend this can be reused easily * git-tracker: short-circuit boolean logic We don't need to check if the commit is a descendant of the HEAD of the branch if it *is* the HEAD * nix: fenix -> nixpkgs * treefmt: add actionlint * nix: use docker arch names for containers * ci: use actions-rust-lang actions * nix: drop ci dev shell * git-tracker: init ManagedRepository this logic can be shared * ci: use nix for clippy scan * discord-bot: better handle unmerged PRs * ci: fix treefmt check * nix: fix clippy check * .env.template: update crate names * git-tracker: use remote name for remote name i was half asleep * discord-bot: handle merged PRs that aren't found in any tracked branches * git-tracker: make collect_statuses_in() return a Vec * discord-bot: add more PR info with response fixes #18
Diffstat (limited to 'crates/bot-http/src/lib.rs')
-rw-r--r--crates/bot-http/src/lib.rs63
1 files changed, 0 insertions, 63 deletions
diff --git a/crates/bot-http/src/lib.rs b/crates/bot-http/src/lib.rs
deleted file mode 100644
index ab32cd4..0000000
--- a/crates/bot-http/src/lib.rs
+++ /dev/null
@@ -1,63 +0,0 @@
-use std::future::Future;
-
-use log::trace;
-use serde::de::DeserializeOwned;
-
-mod github;
-mod model;
-mod teawie;
-
-pub use github::ClientExt as GithubClientExt;
-pub use teawie::ClientExt as TeawieClientExt;
-
-pub type Client = reqwest::Client;
-pub type Response = reqwest::Response;
-pub type Error = reqwest::Error;
-
-/// Fun trait for functions we use with [Client]
-pub trait ClientExt {
- fn default() -> Self;
- fn get_request(&self, url: &str) -> impl Future<Output = Result<Response, Error>> + Send;
- fn get_json<T: DeserializeOwned>(
- &self,
- url: &str,
- ) -> impl Future<Output = Result<T, Error>> + Send;
-}
-
-impl ClientExt for Client {
- /// Create the default [`Client`]
- fn default() -> Self {
- reqwest::Client::builder()
- .user_agent(format!(
- "nixpkgs-tracker-bot/{}",
- option_env!("CARGO_PKG_VERSION").unwrap_or_else(|| "development")
- ))
- .build()
- .unwrap()
- }
-
- /// Perform a GET request to [`url`]
- ///
- /// # Errors
- ///
- /// Will return [`Err`] if the request fails
- async fn get_request(&self, url: &str) -> Result<Response, Error> {
- trace!("Making GET request to {url}");
-
- let resp = self.get(url).send().await?;
- resp.error_for_status_ref()?;
-
- Ok(resp)
- }
-
- /// Perform a GET request to [`url`] and decode the json response
- ///
- /// # Errors
- ///
- /// Will return [`Err`] if the request fails or cannot be deserialized
- async fn get_json<T: DeserializeOwned>(&self, url: &str) -> Result<T, Error> {
- let resp = self.get_request(url).await?;
- let json = resp.json().await?;
- Ok(json)
- }
-}