From 9235be2eedc2c4f3a78cb704b0a107f33607e530 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Thu, 6 Apr 2023 01:53:22 -0700 Subject: feat: native async reqwest calls --- src/modules/api/sydney.rs | 51 +++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 24 deletions(-) (limited to 'src/modules/api') diff --git a/src/modules/api/sydney.rs b/src/modules/api/sydney.rs index 20f8faa..e66f91d 100644 --- a/src/modules/api/sydney.rs +++ b/src/modules/api/sydney.rs @@ -27,34 +27,37 @@ pub fn module(router: &mut windmark::Router) { "/api/sydney/version", "Sydney's version", move |context| { - let mut content = "0.0.0".to_string(); - - if let Ok(response) = reqwest::blocking::Client::new() - .get("https://api.github.com/repos/gemrest/sydney/tags") - .header( - "User-Agent", - format!("{}/{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")), - ) - .send() - { - if let Ok(response_content) = response.json::>() { - let response_content: Vec = response_content; - - if let Some(first_tag) = response_content.get(0) { - content = first_tag.name().clone(); - } - - if let Some(just_tag) = content.get(1..) { - content = just_tag.to_string(); + async move { + let mut content = "0.0.0".to_string(); + + if let Ok(response) = reqwest::Client::new() + .get("https://api.github.com/repos/gemrest/sydney/tags") + .header( + "User-Agent", + format!("{}/{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")), + ) + .send() + .await + { + if let Ok(response_content) = response.json::>().await { + let response_content: Vec = response_content; + + if let Some(first_tag) = response_content.get(0) { + content = first_tag.name().clone(); + } + + if let Some(just_tag) = content.get(1..) { + content = just_tag.to_string(); + } } } - } - crate::route::cache(&context, &content); + crate::route::cache(&context, &content); - windmark::Response::success(content) - .with_mime("text/plain") - .clone() + windmark::Response::success(content) + .with_mime("text/plain") + .clone() + } }, ); } -- cgit v1.2.3