From 40e5bf45bd2d88785a4509294ec9aa77e2328b72 Mon Sep 17 00:00:00 2001 From: naskya <m@naskya.net> Date: Thu, 6 Jun 2024 17:10:40 +0900 Subject: [PATCH] chore (backend-rs): use async HTTP requests --- packages/backend-rs/src/misc/get_image_size.rs | 6 +++--- packages/backend-rs/src/misc/latest_version.rs | 8 +++++--- packages/backend-rs/src/util/http_client.rs | 6 +++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/backend-rs/src/misc/get_image_size.rs b/packages/backend-rs/src/misc/get_image_size.rs index bfe5c4edd3..46d9415434 100644 --- a/packages/backend-rs/src/misc/get_image_size.rs +++ b/packages/backend-rs/src/misc/get_image_size.rs @@ -1,6 +1,6 @@ use crate::{database::cache, util::http_client}; use image::{io::Reader, ImageError, ImageFormat}; -use isahc::ReadResponseExt; +use isahc::AsyncReadResponseExt; use nom_exif::{parse_jpeg_exif, EntryValue, ExifTag}; use std::io::Cursor; use tokio::sync::Mutex; @@ -70,7 +70,7 @@ pub async fn get_image_size_from_url(url: &str) -> Result<ImageSize, Error> { tracing::info!("retrieving image from {}", url); - let mut response = http_client::client()?.get(url)?; + let mut response = http_client::client()?.get_async(url).await?; if !response.status().is_success() { tracing::info!("status: {}", response.status()); @@ -78,7 +78,7 @@ pub async fn get_image_size_from_url(url: &str) -> Result<ImageSize, Error> { return Err(Error::Http(format!("Failed to get image from {}", url))); } - let image_bytes = response.bytes()?; + let image_bytes = response.bytes().await?; let reader = Reader::new(Cursor::new(&image_bytes)).with_guessed_format()?; diff --git a/packages/backend-rs/src/misc/latest_version.rs b/packages/backend-rs/src/misc/latest_version.rs index 1792adee06..82d8185d56 100644 --- a/packages/backend-rs/src/misc/latest_version.rs +++ b/packages/backend-rs/src/misc/latest_version.rs @@ -1,7 +1,7 @@ //! Fetch latest Firefish version from the Firefish repository use crate::{database::cache, util::http_client}; -use isahc::ReadResponseExt; +use isahc::AsyncReadResponseExt; use serde::Deserialize; #[derive(thiserror::Error, Debug)] @@ -29,7 +29,9 @@ async fn get_latest_version() -> Result<String, Error> { version: String, } - let mut response = http_client::client()?.get(UPSTREAM_PACKAGE_JSON_URL)?; + let mut response = http_client::client()? + .get_async(UPSTREAM_PACKAGE_JSON_URL) + .await?; if !response.status().is_success() { tracing::info!("status: {}", response.status()); @@ -39,7 +41,7 @@ async fn get_latest_version() -> Result<String, Error> { )); } - let res_parsed: Response = serde_json::from_str(&response.text()?)?; + let res_parsed: Response = serde_json::from_str(&response.text().await?)?; Ok(res_parsed.version) } diff --git a/packages/backend-rs/src/util/http_client.rs b/packages/backend-rs/src/util/http_client.rs index 3e861966d2..711405b6a0 100644 --- a/packages/backend-rs/src/util/http_client.rs +++ b/packages/backend-rs/src/util/http_client.rs @@ -20,13 +20,13 @@ static CLIENT: OnceCell<HttpClient> = OnceCell::new(); /// # Example /// ```no_run /// # use backend_rs::util::http_client::client; -/// use isahc::ReadResponseExt; +/// use isahc::AsyncReadResponseExt; /// /// # fn f() -> Result<(), Box<dyn std::error::Error>> { -/// let mut response = client()?.get("https://example.com/")?; +/// let mut response = client()?.get_async("https://example.com/").await?; /// /// if response.status().is_success() { -/// println!("{}", response.text()?); +/// println!("{}", response.text().await?); /// } /// # Ok(()) /// # }