Skip to content
use actix_web::{HttpRequest, HttpResponse, Responder, get};

const TCSS: &str = include_str!("../assets/t.css");
const CUSTOM_CSS: &str = include_str!("../assets/custom.css");
const HTMX: &str = include_str!("../assets/h.js");
const AG_GRID_JS: &str = include_str!("../assets/ag-grid-enterprise.min.js");
const AG_GRID_CSS: &str = include_str!("../assets/ag-grid.min.css");
const AG_THEME_BALHAM_CSS: &str = include_str!("../assets/ag-theme-balham.min.css");

#[get("/assets/{filename:.*}")]
pub async fn assets(req: HttpRequest) -> impl Responder {
    let path = req.match_info().query("filename");

    match path {
        "custom.css" => HttpResponse::Ok()
            .content_type("text/css; charset=utf-8")
            .body(CUSTOM_CSS),
        "t.css" => HttpResponse::Ok()
            .content_type("text/css; charset=utf-8")
            .body(TCSS),
        "h.js" => HttpResponse::Ok()
            .content_type("application/javascript; charset=utf-8")
            .body(HTMX),
        "ag-grid-enterprise.min.js" => HttpResponse::Ok()
            .content_type("application/javascript; charset=utf-8")
            .body(AG_GRID_JS),
        "ag-grid.min.css" => HttpResponse::Ok()
            .content_type("text/css; charset=utf-8")
            .body(AG_GRID_CSS),
        "ag-theme-balham.min.css" => HttpResponse::Ok()
            .content_type("text/css; charset=utf-8")
            .body(AG_THEME_BALHAM_CSS),
        _ => HttpResponse::NotFound().body("Not found"),
    }
}