feat(ports): extend HtmlRenderer with page context and new render methods

This commit is contained in:
2026-05-04 13:20:30 +02:00
parent 5df89200d4
commit 7f815f8207
2 changed files with 29 additions and 3 deletions

View File

@@ -1,7 +1,30 @@
use domain::models::{DiaryEntry, collections::Paginated};
pub struct HtmlPageContext {
pub user_email: Option<String>,
pub register_enabled: bool,
}
pub struct LoginPageData<'a> {
pub ctx: HtmlPageContext,
pub error: Option<&'a str>,
}
pub struct RegisterPageData<'a> {
pub ctx: HtmlPageContext,
pub error: Option<&'a str>,
}
pub struct NewReviewPageData<'a> {
pub ctx: HtmlPageContext,
pub error: Option<&'a str>,
}
pub trait HtmlRenderer: Send + Sync {
fn render_diary_page(&self, data: &Paginated<DiaryEntry>) -> Result<String, String>;
fn render_diary_page(&self, data: &Paginated<DiaryEntry>, ctx: HtmlPageContext) -> Result<String, String>;
fn render_login_page(&self, data: LoginPageData<'_>) -> Result<String, String>;
fn render_register_page(&self, data: RegisterPageData<'_>) -> Result<String, String>;
fn render_new_review_page(&self, data: NewReviewPageData<'_>) -> Result<String, String>;
}
pub trait RssFeedRenderer: Send + Sync {