summaryrefslogtreecommitdiff
path: root/src/api/guzzle.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/guzzle.rs')
-rw-r--r--src/api/guzzle.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/api/guzzle.rs b/src/api/guzzle.rs
new file mode 100644
index 0000000..88944ef
--- /dev/null
+++ b/src/api/guzzle.rs
@@ -0,0 +1,25 @@
+use reqwest::StatusCode;
+use serde::{Deserialize, Serialize};
+
+#[derive(Serialize, Deserialize)]
+struct GuzzleResponse {
+ pub url: String,
+}
+
+const GUZZLE: &str = "http://198.199.68.30";
+
+pub async fn get_random_teawie() -> String {
+ let endpoint = "/get_random_teawie";
+ let resp = reqwest::get(GUZZLE.to_owned() + endpoint).await.unwrap(); // why did i have to own
+ // this constant? i have
+ // no idea!
+ let err_msg = "couldn't get a teawie";
+
+ match resp.status() {
+ StatusCode::OK => match resp.json::<GuzzleResponse>().await {
+ Ok(data) => data.url,
+ Err(why) => format!("{} ({:?})", err_msg, why),
+ },
+ other => format!("{} ({:?})", err_msg, other),
+ }
+}