summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
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();