diff options
| author | Daniel Hader <[email protected]> | 2026-05-11 19:28:00 -0500 |
|---|---|---|
| committer | Daniel Hader <[email protected]> | 2026-05-11 19:28:00 -0500 |
| commit | 36fad793c3be58b220ae319a45c8cd8afbae09fa (patch) | |
| tree | 0f072c9f3dd45b4295ded00d8a7f2c318238b688 /src/main.rs | |
| parent | a005add5513182abb0b1230cf514c7a45b290e4b (diff) | |
user route and database pooling using r2d2
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs index a143df5..ef762f7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,18 +1,36 @@ mod database; mod routes; +mod auth; use axum::{ - routing::get, + routing::{get, post}, Router, }; -use routes::problems::get_problems; +use routes::problem::get_problems; +use routes::user::create_user; + +use crate::database::Database; + +#[derive(Clone)] +struct AppState { + database: Database, +} #[tokio::main] async fn main() { + + let database = Database::new_in_memory().unwrap(); + database.initialize().unwrap(); + + let state = AppState { + database: database, + }; + let app = Router::new() .route("/", get(|| async {"Hello World!"})) - .route("/problems", get(get_problems)); + .route("/problems", get(get_problems)) + .route("/user", post(create_user).with_state(state)); let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap(); axum::serve(listener, app).await.unwrap(); |
