From 8e92db3dc61e2270173831b86b8d003f7150bee3 Mon Sep 17 00:00:00 2001 From: Jiahao XU Date: Wed, 22 Jun 2022 16:01:05 +1000 Subject: [PATCH] Refactor: Extract `new_reqwest_client(_builder)` Signed-off-by: Jiahao XU --- src/fetchers/quickinstall.rs | 6 ++++-- src/helpers.rs | 16 +++++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/fetchers/quickinstall.rs b/src/fetchers/quickinstall.rs index 7d6ed14a..120dd6cb 100644 --- a/src/fetchers/quickinstall.rs +++ b/src/fetchers/quickinstall.rs @@ -7,7 +7,9 @@ use tokio::task::JoinHandle; use url::Url; use super::Data; -use crate::{download_and_extract, remote_exists, BinstallError, PkgFmt}; +use crate::{ + download_and_extract, new_reqwest_client_builder, remote_exists, BinstallError, PkgFmt, +}; const BASE_URL: &str = "https://github.com/alsuren/cargo-quickinstall/releases/download"; const STATS_URL: &str = "https://warehouse-clerk-tmp.vercel.app/api/crate"; @@ -89,7 +91,7 @@ impl QuickInstall { let url = Url::parse(&stats_url)?; debug!("Sending installation report to quickinstall ({url})"); - reqwest::Client::builder() + new_reqwest_client_builder() .user_agent(USER_AGENT) .build()? .request(Method::HEAD, url.clone()) diff --git a/src/helpers.rs b/src/helpers.rs index 55aee08c..806cc7cd 100644 --- a/src/helpers.rs +++ b/src/helpers.rs @@ -5,7 +5,7 @@ use bytes::Bytes; use cargo_toml::Manifest; use futures_util::stream::Stream; use log::debug; -use reqwest::{Method, Response}; +use reqwest::{Client, ClientBuilder, Method, Response}; use serde::Serialize; use tinytemplate::TinyTemplate; use url::Url; @@ -40,8 +40,16 @@ pub fn load_manifest_path>( Ok(manifest) } +pub fn new_reqwest_client_builder() -> ClientBuilder { + ClientBuilder::new() +} + +pub fn new_reqwest_client() -> reqwest::Result { + new_reqwest_client_builder().build() +} + pub async fn remote_exists(url: Url, method: Method) -> Result { - let req = reqwest::Client::new() + let req = new_reqwest_client()? .request(method.clone(), url.clone()) .send() .await @@ -54,7 +62,9 @@ async fn create_request( ) -> Result>, BinstallError> { debug!("Downloading from: '{url}'"); - reqwest::get(url.clone()) + new_reqwest_client()? + .get(url.clone()) + .send() .await .and_then(|r| r.error_for_status()) .map_err(|err| BinstallError::Http {