diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2024-09-03 01:25:20 -0400 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2024-09-03 02:09:25 -0400 |
| commit | b404344a7c4ab5cb6c7d7b445fab796be79b848f (patch) | |
| tree | c476b125316b9d4aa7bdece7c9bb8e2f65d2961e /src/index.rs | |
| parent | 92a7518975c6bc4b2f9b9c6c12c458b24e8cfaf5 (diff) | |
Allow login creation and authentication.
This is a beefy change, as it adds a TON of smaller pieces needed to make this all function:
* A database migration.
* A ton of new crates for things like password validation, timekeeping, and HTML generation.
* A first cut at a module structure for routes, templates, repositories.
* A family of ID types, for identifying various kinds of domain thing.
* AppError, which _doesn't_ implement Error but can be sent to clients.
Diffstat (limited to 'src/index.rs')
| -rw-r--r-- | src/index.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/index.rs b/src/index.rs new file mode 100644 index 0000000..6411ff4 --- /dev/null +++ b/src/index.rs @@ -0,0 +1,37 @@ +use axum::{response::IntoResponse, routing::get, Router}; + +pub fn router<S>() -> Router<S> +where + S: Send + Sync + Clone + 'static, +{ + Router::new().route("/", get(index)) +} + +async fn index() -> impl IntoResponse { + templates::index() +} + +mod templates { + use maud::{html, Markup, DOCTYPE}; + pub fn index() -> Markup { + html! { + (DOCTYPE) + head { + title { "hi" } + } + body { + form action="/login" method="post" { + label { + "name" + input name="name" type="text" {} + } + label { + "password" + input name="password" type="password" {} + } + button { "hi" } + } + } + } + } +} |
