From 8b19a8cac531294088e53c638b694d7386eb084c Mon Sep 17 00:00:00 2001 From: Aravinth Manivannan Date: Wed, 28 Dec 2022 04:38:24 +0530 Subject: [PATCH] chore: reuse app context's http client in conductor obj --- src/conductor.rs | 14 ++++++++------ src/ctx/mod.rs | 6 +++++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/conductor.rs b/src/conductor.rs index 664342b..ef211fa 100644 --- a/src/conductor.rs +++ b/src/conductor.rs @@ -30,11 +30,13 @@ pub struct Conductor { } impl Conductor { - pub fn new(settings: Settings) -> Self { - Self { - client: Client::new(), - settings, - } + pub fn new(settings: Settings, client: Option) -> Self { + let client = if let Some(client) = client { + client + } else { + Client::new() + }; + Self { client, settings } } async fn tx(&self, e: &EventType) -> ServiceResult<()> { for c in self.settings.conductors.iter() { @@ -79,7 +81,7 @@ mod tests { #[actix_rt::test] pub async fn test_conductor() { let settings = Settings::new().unwrap(); - let c = Conductor::new(settings.clone()); + let c = Conductor::new(settings.clone(), None); c.delete_site("example.org".into()).await.unwrap(); let page = Page { secret: "foo".into(), diff --git a/src/ctx/mod.rs b/src/ctx/mod.rs index 4d472fe..ae7d735 100644 --- a/src/ctx/mod.rs +++ b/src/ctx/mod.rs @@ -20,6 +20,7 @@ use std::thread; use crate::db::*; use crate::settings::Settings; use argon2_creds::{Config as ArgonConfig, ConfigBuilder as ArgonConfigBuilder, PasswordPolicy}; +use reqwest::Client; use tracing::info; pub mod api; @@ -35,6 +36,7 @@ pub struct Ctx { pub conductor: Conductor, /// credential-procession policy pub creds: ArgonConfig, + client: Client, } impl Ctx { @@ -52,7 +54,8 @@ impl Ctx { pub async fn new(settings: Settings) -> Arc { let creds = Self::get_creds(); let c = creds.clone(); - let conductor = Conductor::new(settings.clone()); + let client = Client::default(); + let conductor = Conductor::new(settings.clone(), Some(client.clone())); #[allow(unused_variables)] let init = thread::spawn(move || { @@ -67,6 +70,7 @@ impl Ctx { Arc::new(Self { settings, + client, db, creds, conductor,