mod auth; mod pages; mod platform; use axum::Router; use axum::http::StatusCode; use axum::response::{Html, IntoResponse, Response}; use minijinja::context; use crate::state::AppState; pub fn router() -> Router { Router::new() .merge(pages::router()) .merge(auth::router()) .merge(platform::router()) } /// Render an error page with the given status code, heading, and message. fn error_page(state: &AppState, status: StatusCode, heading: &str, message: &str) -> Response { let html = state.templates.render( "pages/error.html.jinja", context! { title => format!("{} - Forage", heading), description => message, status => status.as_u16(), heading => heading, message => message, }, ); match html { Ok(body) => (status, Html(body)).into_response(), Err(_) => status.into_response(), } }