use anyhow::Result; use axum::{extract::State, response::IntoResponse}; use axum_extra::extract::Cached; use axum_htmx::HxBoosted; use minijinja::context as template_context; use crate::{ create_renderer, http::{ context::WebContext, errors::WebError, middleware_auth::Auth, middleware_i18n::Language, }, }; pub async fn handle_privacy_policy( State(web_context): State, HxBoosted(hx_boosted): HxBoosted, Language(language): Language, Cached(auth): Cached, ) -> Result { // Create the template renderer with enhanced context let renderer = create_renderer!(web_context.clone(), Language(language), hx_boosted, false); let canonical_url = format!("https://{}/privacy-policy", web_context.config.external_base); Ok(( http::StatusCode::OK, renderer.render_template( "privacy-policy", template_context! {}, auth.0.as_ref(), &canonical_url, ), ) .into_response()) } pub async fn handle_terms_of_service( State(web_context): State, HxBoosted(hx_boosted): HxBoosted, Language(language): Language, Cached(auth): Cached, ) -> Result { // Create the template renderer with enhanced context let renderer = create_renderer!(web_context.clone(), Language(language), hx_boosted, false); let canonical_url = format!("https://{}/terms-of-service", web_context.config.external_base); Ok(( http::StatusCode::OK, renderer.render_template( "terms-of-service", template_context! {}, auth.0.as_ref(), &canonical_url, ), ) .into_response()) } pub async fn handle_cookie_policy( State(web_context): State, HxBoosted(hx_boosted): HxBoosted, Language(language): Language, Cached(auth): Cached, ) -> Result { // Create the template renderer with enhanced context let renderer = create_renderer!(web_context.clone(), Language(language), hx_boosted, false); let canonical_url = format!("https://{}/cookie-policy", web_context.config.external_base); Ok(( http::StatusCode::OK, renderer.render_template( "cookie-policy", template_context! {}, auth.0.as_ref(), &canonical_url, ), ) .into_response()) } pub async fn handle_acknowledgement( State(web_context): State, HxBoosted(hx_boosted): HxBoosted, Language(language): Language, Cached(auth): Cached, ) -> Result { // Create the template renderer with enhanced context let renderer = create_renderer!(web_context.clone(), Language(language), hx_boosted, false); let canonical_url = format!("https://{}/acknowledgement", web_context.config.external_base); Ok(( http::StatusCode::OK, renderer.render_template( "acknowledgement", template_context! {}, auth.0.as_ref(), &canonical_url, ), ) .into_response()) }