use actix_web::{HttpRequest, Responder, web}; use actix_web::http::header::q; use clap::builder::TypedValueParser; use minijinja::context; use serde::Deserialize; use std::collections::HashMap; use crate::webui::MiniJinjaRenderer; #[actix_web::get("/")] pub async fn index( tmpl_env: MiniJinjaRenderer, query: web::Query>, ) -> actix_web::Result { tmpl_env.render("index.html", ()) } #[actix_web::get("/actions")] pub async fn actions( tmpl_env: MiniJinjaRenderer, query: web::Query>, ) -> actix_web::Result { tmpl_env.render("actions.html", ()) } #[actix_web::get("/overview")] pub async fn overview( tmpl_env: MiniJinjaRenderer, query: web::Query>, ) -> actix_web::Result { tmpl_env.render("overview.html", ()) } #[actix_web::get("/partials/overview/submit_button")] pub async fn overview_submit_button( req: HttpRequest, tmpl_env: MiniJinjaRenderer, query: web::Query> ) -> actix_web::Result { let ctx = context! { event_type => query.get("event_type").unwrap_or(&"".to_string()), }; tmpl_env.render("partials/overview/submit_button.html", ctx) } #[actix_web::post("/v1/events/{event_type}")] pub async fn push_event( req: HttpRequest, tmpl_env: MiniJinjaRenderer, query: web::Query>, ) -> actix_web::Result { println!(">> {:?}", req); let shit = req.match_info().get("event_type").unwrap(); let event = req.match_info().get("event").unwrap(); let ctx = context! { event_type => shit, }; tmpl_env.render("partials/v1/event_processed.html", ctx) }