diff --git a/src/server/events.rs b/src/server/events.rs index ba34300..d23d539 100644 --- a/src/server/events.rs +++ b/src/server/events.rs @@ -1,7 +1,10 @@ use axum::{extract::State, response::Html, routing::post, Form, Router}; use tera::Context; -use crate::db; +use crate::{ + db, + template::{Template, Update}, +}; pub fn app() -> axum::Router { Router::new().route("/", post(post_event)) @@ -17,5 +20,5 @@ async fn post_event( let mut context = Context::new(); context.insert("event", &event); - Ok(Html(ctx.tera.render("updates/event_li.html", &context)?)) + Ok(Html(Update::EventLi.render(&ctx.tera, &context)?)) } diff --git a/src/server/plants.rs b/src/server/plants.rs index ba96a10..7fbcabc 100644 --- a/src/server/plants.rs +++ b/src/server/plants.rs @@ -9,7 +9,7 @@ use tera::Context; use crate::{ db::{self, DbError, Event, Pagination, Plant}, - template::{Template, View}, + template::{Template, Update, View}, }; use super::{error::AppError, query::ToQuery}; @@ -90,5 +90,5 @@ async fn post_plant( let mut context = Context::new(); context.insert("plant", &plant); - Ok(Html(ctx.tera.render("updates/plant_li.html", &context)?)) + Ok(Html(Update::PlantLi.render(&ctx.tera, &context)?)) } diff --git a/src/template/mod.rs b/src/template/mod.rs index 8409337..757dbcc 100644 --- a/src/template/mod.rs +++ b/src/template/mod.rs @@ -1,5 +1,7 @@ +mod update; mod view; +pub use update::Update; pub use view::View; pub trait Template { diff --git a/src/template/update.rs b/src/template/update.rs new file mode 100644 index 0000000..14039f8 --- /dev/null +++ b/src/template/update.rs @@ -0,0 +1,15 @@ +use super::Template; + +pub enum Update { + EventLi, + PlantLi, +} + +impl Template for Update { + fn template(&self) -> &'static str { + match self { + Update::EventLi => "updates/event_li.html", + Update::PlantLi => "updates/plant_li.html", + } + } +}