diff --git a/src/lib.rs b/src/lib.rs index e51e517..f97526d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -3,4 +3,5 @@ extern crate justerror; pub mod db; pub mod handlers; +pub(crate) mod templates; pub mod users; diff --git a/src/template.rs b/src/template.rs deleted file mode 100644 index 2b95388..0000000 --- a/src/template.rs +++ /dev/null @@ -1,35 +0,0 @@ -use askama::Template; -use axum::{ - extract, - http::StatusCode, - response::{Html, IntoResponse, Response}, -}; - -pub(crate) async fn greet(extract::Path(name): extract::Path) -> impl IntoResponse { - let template = HelloTemplate { name }; - HtmlTemplate(template) -} - -#[derive(Template)] -#[template(path = "hello.html")] -struct HelloTemplate { - name: String, -} - -struct HtmlTemplate(T); - -impl IntoResponse for HtmlTemplate -where - T: Template, -{ - fn into_response(self) -> Response { - match self.0.render() { - Ok(html) => Html(html).into_response(), - Err(err) => ( - StatusCode::INTERNAL_SERVER_ERROR, - format!("Failed to render template. Error: {}", err), - ) - .into_response(), - } - } -} diff --git a/src/templates.rs b/src/templates.rs new file mode 100644 index 0000000..b76daf5 --- /dev/null +++ b/src/templates.rs @@ -0,0 +1,10 @@ +use askama::Template; + +#[derive(Template)] +pub struct CreateUser { + pub username: String, + pub displayname: Option, + pub email: Option, + pub password: String, + pub pw_verify: String, +}