summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorDaniel Hader <[email protected]>2026-05-11 19:28:00 -0500
committerDaniel Hader <[email protected]>2026-05-11 19:28:00 -0500
commit36fad793c3be58b220ae319a45c8cd8afbae09fa (patch)
tree0f072c9f3dd45b4295ded00d8a7f2c318238b688 /src/main.rs
parenta005add5513182abb0b1230cf514c7a45b290e4b (diff)
user route and database pooling using r2d2
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs24
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();