Create main.rs

This commit is contained in:
2025-09-08 21:17:57 +02:00
parent a2bf22548c
commit 870be26ba2

View File

@@ -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(())
}