aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs30
1 files changed, 27 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs
index c53664a..3b3f868 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,9 +1,30 @@
1mod auth;
1mod error; 2mod error;
3mod extract;
2mod response; 4mod response;
3mod routers; 5mod routers;
6mod state;
4 7
8pub use auth::{JwtClaims, create_jwt, create_password, validate_jwt, validate_password};
9pub use error::{ApiError, ApiResult};
10pub use response::{ErrorResponse, FailResponse, SuccessResponse};
11pub use state::AppState;
12
13use sea_orm::Database;
5use tokio::net::TcpListener; 14use tokio::net::TcpListener;
6use tracing::{Level, info}; 15use tower_http::trace::TraceLayer;
16use tracing::info;
17use tracing_subscriber::EnvFilter;
18
19async fn app_state() -> AppState {
20 let db_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");
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}
7 28
8async fn listener() -> TcpListener { 29async fn listener() -> TcpListener {
9 let addr = std::env::var("SERVER_BIND").expect("SERVER_BIND must be set"); 30 let addr = std::env::var("SERVER_BIND").expect("SERVER_BIND must be set");
@@ -13,10 +34,13 @@ async fn listener() -> TcpListener {
13#[tokio::main] 34#[tokio::main]
14async fn main() { 35async fn main() {
15 tracing_subscriber::fmt() 36 tracing_subscriber::fmt()
16 .with_max_level(Level::DEBUG) 37 .with_env_filter(EnvFilter::new("info,sqlx=warn,tower_http=debug"))
17 .init(); 38 .init();
18 39
19 let router = routers::router(); 40 let state = app_state().await;
41 let router = routers::router()
42 .layer(TraceLayer::new_for_http())
43 .with_state(state);
20 let listener = listener().await; 44 let listener = listener().await;
21 45
22 info!( 46 info!(