From fbb9c79f8bfb59c792c5b8b2d8f1fffc838af42f Mon Sep 17 00:00:00 2001 From: Tolmachev Igor Date: Wed, 10 Sep 2025 22:38:50 +0300 Subject: Edit main file structure --- src/main.rs | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index 3b3f868..090fd75 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,6 +6,7 @@ mod routers; mod state; pub use auth::{JwtClaims, create_jwt, create_password, validate_jwt, validate_password}; +use axum::Router; pub use error::{ApiError, ApiResult}; pub use response::{ErrorResponse, FailResponse, SuccessResponse}; pub use state::AppState; @@ -16,19 +17,21 @@ use tower_http::trace::TraceLayer; use tracing::info; use tracing_subscriber::EnvFilter; -async fn app_state() -> AppState { - let db_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set"); - let secret = std::env::var("SECRET").expect("SECRET must be set"); - - AppState { - db: Database::connect(db_url).await.unwrap(), - secret: secret, - } +fn env(name: &str) -> String { + std::env::var(name).expect(format!("{} must be set", name).as_str()) } async fn listener() -> TcpListener { - let addr = std::env::var("SERVER_BIND").expect("SERVER_BIND must be set"); - TcpListener::bind(addr).await.unwrap() + TcpListener::bind(env("SERVER_BIND")).await.unwrap() +} + +async fn router() -> Router { + let db = Database::connect(env("DATABASE_URL")).await.unwrap(); + let secret = env("SECRET"); + + routers::router() + .layer(TraceLayer::new_for_http()) + .with_state(AppState { db, secret }) } #[tokio::main] @@ -37,11 +40,8 @@ async fn main() { .with_env_filter(EnvFilter::new("info,sqlx=warn,tower_http=debug")) .init(); - let state = app_state().await; - let router = routers::router() - .layer(TraceLayer::new_for_http()) - .with_state(state); let listener = listener().await; + let router = router().await; info!( "Start listening server on http://{:?}", -- cgit v1.2.3