airlab-web 0.1.3

airlab backend
use crate::web::Result;
use crate::web::mw_auth::CtxW;
use crate::web_config;
use airlab_lib::model::ModelManager;
use axum::extract::State;
use axum::routing::get;
use axum::{Router, response::Html};
use std::fs;
use tokio::task;
#[allow(unused_imports)]
use tracing::{debug, warn};

pub fn routes(mm: ModelManager) -> Router {
    Router::new()
        .route("/main/*all", get(api_get_main_handler))
        .with_state(mm)
}

async fn api_get_main_handler(State(_mm): State<ModelManager>, _ctx: CtxW) -> Result<Html<String>> {
    debug!("HANDLER - api_get_main_handler");
    let html_content = task::spawn_blocking(|| {
        fs::read_to_string(format!("{}/index.html", &web_config().WEB_FOLDER))
    })
    .await
    .expect("Task panicked")?;

    Ok(Html(html_content))
}