aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTolmachev Igor <me@igorek.dev>2025-09-10 22:38:50 +0300
committerTolmachev Igor <me@igorek.dev>2025-09-10 22:38:50 +0300
commitfbb9c79f8bfb59c792c5b8b2d8f1fffc838af42f (patch)
tree1c12ea5baa9a8869ee1fb7259d8b52a62f82b3e6 /src
parentb9d75e22db72aabf47815e381aa6432c1bff3877 (diff)
downloadqueue_server-fbb9c79f8bfb59c792c5b8b2d8f1fffc838af42f.tar.gz
queue_server-fbb9c79f8bfb59c792c5b8b2d8f1fffc838af42f.zip
Edit main file structure
Diffstat (limited to 'src')
-rw-r--r--src/main.rs28
1 files changed, 14 insertions, 14 deletions
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;
6mod state; 6mod state;
7 7
8pub use auth::{JwtClaims, create_jwt, create_password, validate_jwt, validate_password}; 8pub use auth::{JwtClaims, create_jwt, create_password, validate_jwt, validate_password};
9use axum::Router;
9pub use error::{ApiError, ApiResult}; 10pub use error::{ApiError, ApiResult};
10pub use response::{ErrorResponse, FailResponse, SuccessResponse}; 11pub use response::{ErrorResponse, FailResponse, SuccessResponse};
11pub use state::AppState; 12pub use state::AppState;
@@ -16,19 +17,21 @@ use tower_http::trace::TraceLayer;
16use tracing::info; 17use tracing::info;
17use tracing_subscriber::EnvFilter; 18use tracing_subscriber::EnvFilter;
18 19
19async fn app_state() -> AppState { 20fn env(name: &str) -> String {
20 let db_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set"); 21 std::env::var(name).expect(format!("{} must be set", name).as_str())
21 let secret = std::env::var("SECRET").expect("SECRET must be set");
22
23 AppState {
24 db: Database::connect(db_url).await.unwrap(),
25 secret: secret,
26 }
27} 22}
28 23
29async fn listener() -> TcpListener { 24async fn listener() -> TcpListener {
30 let addr = std::env::var("SERVER_BIND").expect("SERVER_BIND must be set"); 25 TcpListener::bind(env("SERVER_BIND")).await.unwrap()
31 TcpListener::bind(addr).await.unwrap() 26}
27
28async fn router() -> Router {
29 let db = Database::connect(env("DATABASE_URL")).await.unwrap();
30 let secret = env("SECRET");
31
32 routers::router()
33 .layer(TraceLayer::new_for_http())
34 .with_state(AppState { db, secret })
32} 35}
33 36
34#[tokio::main] 37#[tokio::main]
@@ -37,11 +40,8 @@ async fn main() {
37 .with_env_filter(EnvFilter::new("info,sqlx=warn,tower_http=debug")) 40 .with_env_filter(EnvFilter::new("info,sqlx=warn,tower_http=debug"))
38 .init(); 41 .init();
39 42
40 let state = app_state().await;
41 let router = routers::router()
42 .layer(TraceLayer::new_for_http())
43 .with_state(state);
44 let listener = listener().await; 43 let listener = listener().await;
44 let router = router().await;
45 45
46 info!( 46 info!(
47 "Start listening server on http://{:?}", 47 "Start listening server on http://{:?}",