summaryrefslogtreecommitdiff
path: root/src/index.rs
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-09-03 01:25:20 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-09-03 02:09:25 -0400
commitb404344a7c4ab5cb6c7d7b445fab796be79b848f (patch)
treec476b125316b9d4aa7bdece7c9bb8e2f65d2961e /src/index.rs
parent92a7518975c6bc4b2f9b9c6c12c458b24e8cfaf5 (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.rs37
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" }
+ }
+ }
+ }
+ }
+}