From 69eb3a5e8085546c080f6dcc7dc5b6df833f14ce Mon Sep 17 00:00:00 2001 From: Ethan Girouard Date: Tue, 30 Jun 2026 21:04:16 -0400 Subject: [PATCH] Move loading config outside of router setup --- src/server/main.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/server/main.rs b/src/server/main.rs index b2b5920..d68ce71 100644 --- a/src/server/main.rs +++ b/src/server/main.rs @@ -5,7 +5,9 @@ use dioxus::{ use crate::App; use crate::server::{ - auth::build_auth_layer, config, database, key_val_store, + auth::build_auth_layer, + config::{self, Config}, + database, key_val_store, require_auth_mw::require_auth_middleware, }; use crate::util::error::{Contextualize, Error, Result}; @@ -15,17 +17,20 @@ pub fn main() -> Result { tracing::warn!("Error reading .env: {e}"); } - // `Ok(...?)` is because `dioxus::serve` expects an `anyhow::Result` - dioxus::serve(async move || Ok(router_setup().await?)); -} - -/// Set up the axum Router -async fn router_setup() -> Result { tracing::debug!("Loading configuration..."); let config = config::load_config() .map_err(|e| Error::message_here(e.to_string())) .err_context("Failed to load config")?; + // `Ok(...?)` is because `dioxus::serve` expects an `anyhow::Result` + dioxus::serve(move || { + let config = config.clone(); + async move { Ok(router_setup(config).await?) } + }); +} + +/// Set up the axum Router +async fn router_setup(config: Config) -> Result { let db_pool = database::setup(config.database.connection_uri()) .await .err_context("Failed database setup")?;