summaryrefslogtreecommitdiff
path: root/crates/bot-http/src
diff options
context:
space:
mode:
Diffstat (limited to 'crates/bot-http/src')
-rw-r--r--crates/bot-http/src/github.rs35
-rw-r--r--crates/bot-http/src/lib.rs63
-rw-r--r--crates/bot-http/src/model.rs13
-rw-r--r--crates/bot-http/src/teawie.rs24
4 files changed, 0 insertions, 135 deletions
diff --git a/crates/bot-http/src/github.rs b/crates/bot-http/src/github.rs
deleted file mode 100644
index 7822eb8..0000000
--- a/crates/bot-http/src/github.rs
+++ /dev/null
@@ -1,35 +0,0 @@
-use super::{ClientExt as _, Error};
-use crate::model::PullRequest;
-
-use std::future::Future;
-
-const GITHUB_API: &str = "https://api.github.com";
-
-pub trait ClientExt {
- /// Get the commit that merged [`pr`] in [`repo_owner`]/[`repo_name`]
- ///
- /// # Errors
- ///
- /// Will return [`Err`] if the merge commit cannot be found
- fn merge_commit_for(
- &self,
- repo_owner: &str,
- repo_name: &str,
- pr: u64,
- ) -> impl Future<Output = Result<Option<String>, Error>> + Send;
-}
-
-impl ClientExt for super::Client {
- async fn merge_commit_for(
- &self,
- repo_owner: &str,
- repo_name: &str,
- pr: u64,
- ) -> Result<Option<String>, Error> {
- let url = format!("{GITHUB_API}/repos/{repo_owner}/{repo_name}/pulls/{pr}");
- let resp: PullRequest = self.get_json(&url).await?;
- let merge_commit = resp.merge_commit_sha;
-
- Ok(merge_commit)
- }
-}
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)
- }
-}
diff --git a/crates/bot-http/src/model.rs b/crates/bot-http/src/model.rs
deleted file mode 100644
index afd4717..0000000
--- a/crates/bot-http/src/model.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-use serde::Deserialize;
-
-/// Bad version of `/repos/{owner}/{repo}/pulls/{pull_number}` for Github's api
-#[derive(Clone, Debug, Deserialize)]
-pub struct PullRequest {
- pub merge_commit_sha: Option<String>,
-}
-
-/// `/random_teawie` for the teawieAPI
-#[derive(Clone, Debug, Deserialize)]
-pub struct RandomTeawie {
- pub url: Option<String>,
-}
diff --git a/crates/bot-http/src/teawie.rs b/crates/bot-http/src/teawie.rs
deleted file mode 100644
index ea4f53e..0000000
--- a/crates/bot-http/src/teawie.rs
+++ /dev/null
@@ -1,24 +0,0 @@
-use super::{ClientExt as _, Error};
-use crate::model::RandomTeawie;
-
-use std::future::Future;
-
-const TEAWIE_API: &str = "https://api.getchoo.com";
-
-pub trait ClientExt {
- /// Get a random teawie
- ///
- /// # Errors
- ///
- /// Will return [`Err`] if the request fails or the response cannot be deserialized
- fn random_teawie(&self) -> impl Future<Output = Result<Option<String>, Error>> + Send;
-}
-
-impl ClientExt for super::Client {
- async fn random_teawie(&self) -> Result<Option<String>, Error> {
- let url = format!("{TEAWIE_API}/random_teawie");
- let resp: RandomTeawie = self.get_json(&url).await?;
-
- Ok(resp.url)
- }
-}