use axum::Router; use axum::routing::get; use axum::routing::post; use axum_login::AuthUser; use serde::Deserialize; use serde::Serialize; use sqlx::FromRow; use crate::AppState; mod login; mod register; #[derive(Debug, Clone, Serialize, Deserialize, FromRow)] pub struct User { id: i64, username: String, password: String, } impl User { pub fn id(&self) -> i64 { self.id } pub fn username(&self) -> &str { &self.username } pub fn password(&self) -> &str { &self.password } } impl AuthUser for User { type Id = i64; fn id(&self) -> Self::Id { self.id } fn session_auth_hash(&self) -> &[u8] { self.password.as_bytes() } } pub fn routes() -> Router { Router::new() .route("/login", get(login::show_login)) .route("/login", post(login::do_login)) .route("/register", get(register::show_register)) .route("/register", post(register::do_register)) }