From ba442bc1d4955812fd75705fedf378a5d20de631 Mon Sep 17 00:00:00 2001 From: Serguey Parkhomovsky Date: Mon, 16 Mar 2026 21:56:22 -0700 Subject: add axum --- src/main.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 29df56d..0a24ed6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,4 @@ +use axum::{Json, Router, extract::State, routing::get}; use native_tls::TlsConnector; use printstats::*; use reqwest::Client; @@ -84,7 +85,10 @@ async fn main() { Ok(msg) => { let entry = lock.entry(name.clone()).or_default(); extract_status_from_bambu(&msg, entry); - println!("Updated state for {}: {:?}", &name, p.payload); + println!( + "Updated state for {}: {:?}", + &name, p.payload + ); } Err(e) => { eprintln!("Failed to deserialize BambuStatus: {}", e); @@ -103,6 +107,15 @@ async fn main() { } } + tracing_subscriber::fmt::init(); + + let app = Router::new() + .route("/", get(root)) + .with_state(Arc::clone(&state)); + + let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap(); + let _ = axum::serve(listener, app).await; + loop { tokio::select! { _ = tokio::signal::ctrl_c() => { @@ -119,3 +132,10 @@ async fn main() { } } } + +async fn root( + State(state): State>>>, +) -> Json> { + let lock = state.lock().await; + Json(lock.clone()) +} -- cgit v1.2.3