From 870be26ba2b83472ed0847b98ccdaf5fe18e8933 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Mon, 8 Sep 2025 21:17:57 +0200 Subject: [PATCH] Create main.rs --- server/src/main.rs | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/server/src/main.rs b/server/src/main.rs index e7a11a9..24fecf1 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -1,3 +1,44 @@ -fn main() { - println!("Hello, world!"); +mod controllers; +mod routes; +mod utils; + +use utils::init_database; +use anyhow::Result; +use axum::{ + routing::{delete, get, post, put}, + Router, +}; +use routes::{admin, auth as auth_routes, machines, setup}; +use tower_http::cors::CorsLayer; + +#[tokio::main] +async fn main() -> Result<()> { + let pool = init_database().await?; + + let app = Router::new() + .route("/setup/status", get(setup::get_setup_status)) + .route("/setup/init", post(setup::init_setup)) + + .route("/auth/login", post(auth_routes::login)) + .route("/auth/logout", post(auth_routes::logout)) + + .route("/admin/users", get(admin::get_users)) + .route("/admin/users", post(admin::create_user_handler)) + .route("/admin/users/:id", put(admin::update_user_handler)) + .route("/admin/users/:id", delete(admin::delete_user_handler)) + + .route("/machines/register", post(machines::register_machine)) + .route("/machines", get(machines::get_machines)) + .route("/machines/:id", delete(machines::delete_machine)) + + .layer(CorsLayer::permissive()) + + .with_state(pool); + + let listener = tokio::net::TcpListener::bind("0.0.0.0:8379").await?; + println!("Server running on http://0.0.0.0:8379"); + + axum::serve(listener, app).await?; + + Ok(()) }