Started to implement proper event processing.

This commit is contained in:
didier amyot committed 2023-02-23 13:41:47 -05:00
1 parent af11915a52
commit 238cd9f2da
7 files changed
+75 -88

No files matched your search

+10 -25
View File
@@ -1,12 +1,12 @@
use std::collections::HashMap;
use actix_web::{web, HttpRequest, Responder};
use actix_web::{error, HttpRequest, Responder, web};
use clap::builder::TypedValueParser;
use log::info;
use minijinja::context;
use serde::Deserialize;
use std::collections::HashMap;
use crate::events::Event;
use crate::webui::MiniJinjaRenderer;
#[actix_web::get("/")]
@@ -52,23 +52,6 @@ pub async fn actions_partials(
tmpl_env.render(template_location.as_str(), ctx)
}
#[derive(Deserialize, Debug)]
struct Event1 {
name: String,
age: i64,
}
#[derive(Deserialize, Debug)]
struct Event2 {
name: String,
score: i64,
}
#[derive(Deserialize, Debug)]
enum Event {
Event1(Event1),
Event2(Event2),
}
#[derive(Deserialize, Debug)]
struct CreateEventPayload {
@@ -80,14 +63,16 @@ struct CreateEventPayload {
pub async fn push_event(
req: HttpRequest,
tmpl_env: MiniJinjaRenderer,
event_channel: web::Data<async_channel::Sender<i32>>,
event_channel: web::Data<async_channel::Sender<Event>>,
web::Json(form): web::Json<CreateEventPayload>,
) -> actix_web::Result<impl Responder> {
let shit = req.match_info().get("event_type").unwrap();
println!("payload: {:?}", form);
let _ = event_channel.send(56).await;
let path_event_type = req.match_info().get("event_type").unwrap();
if path_event_type.to_string() != form.event_type {
return Err(error::ErrorBadRequest("Inconsistent event type."))
}
let _ = event_channel.send(form.event).await;
let ctx = context! {
event_type => shit,
event_type => "bob le chef",
};
tmpl_env.render("partials/v1/event_processed.html", ctx)
}