Minor Bugfixes

This commit is contained in:
2026-04-28 20:42:18 +02:00
parent ce86d8bc8f
commit dac2d91213
7 changed files with 111 additions and 20 deletions

View File

@@ -12,7 +12,11 @@ use axum_extra::extract::CookieJar;
use jsonwebtoken::DecodingKey;
use serde_json::json;
use crate::{AppState, cookie::jwt::decode_token, models::LoginModel};
use crate::{
AppState,
cookie::jwt::decode_token,
models::{LoginScheme, User},
};
pub async fn validate_token(
cookies: CookieJar,
@@ -59,7 +63,7 @@ pub async fn validate_token(
(StatusCode::UNAUTHORIZED, Json(error))
})?;
let user = sqlx::query_as::<_, LoginModel>(r#"SELECT * FROM users WHERE id = $1"#)
let user = sqlx::query_as::<_, User>(r#"SELECT * FROM users WHERE id = $1"#)
.bind(uuid)
.fetch_optional(&data.db)
.await

View File

@@ -2,18 +2,18 @@
pub struct Env {
pub db_url: String,
pub token_secret: String,
pub origin: String
pub origin: String,
}
impl Env {
pub fn load() -> Env {
let db_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");
let token_secret = std::env::var("TOKEN_SECRET").expect("TOKEN_SECRET must be set");
let origin = std::env::var("ORIGIN").expect("ORIGIN must be set")
let origin = std::env::var("ORIGIN").expect("ORIGIN must be set");
Env {
db_url,
token_secret,
origin
origin,
}
}
}

46
frontend/Cargo.lock generated
View File

@@ -70,6 +70,7 @@ dependencies = [
"wasm-bindgen-futures",
"web-sys",
"yew",
"yew-router",
]
[[package]]
@@ -219,6 +220,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97563d71863fb2824b2e974e754a81d19c4a7ec47b09ced8a0e6656b6d54bd1f"
dependencies = [
"futures-channel",
"gloo-events",
"js-sys",
"wasm-bindgen",
@@ -315,6 +317,8 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994"
dependencies = [
"futures-channel",
"futures-core",
"js-sys",
"wasm-bindgen",
]
@@ -590,6 +594,12 @@ dependencies = [
"proc-macro2",
]
[[package]]
name = "route-recognizer"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746"
[[package]]
name = "rustversion"
version = "1.0.22"
@@ -838,6 +848,12 @@ version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
[[package]]
name = "urlencoding"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
[[package]]
name = "version_check"
version = "0.9.5"
@@ -963,6 +979,36 @@ dependencies = [
"syn 2.0.117",
]
[[package]]
name = "yew-router"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "870bd2a1aa6d608c0c789c122654e25f4927bb6bfe344cc0da3b630ac3c73260"
dependencies = [
"gloo",
"js-sys",
"route-recognizer",
"serde",
"serde_urlencoded",
"tracing",
"urlencoding",
"wasm-bindgen",
"web-sys",
"yew",
"yew-router-macro",
]
[[package]]
name = "yew-router-macro"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8399f1d134ab8e69abc7cded19f114621d520bd9c79c5a0f34091bf664d7325b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
]
[[package]]
name = "zmij"
version = "1.0.21"

View File

@@ -17,3 +17,4 @@ wasm-bindgen = "0.2.118"
wasm-bindgen-futures = "0.4.68"
web-sys = { version = "0.3.95", features = ["Window", "Document", "Request", "Response", "Headers"] }
gloo-net = "0.7.0"
yew-router = "0.20.0"

View File

@@ -1,20 +1,29 @@
mod pages;
use crate::pages::*;
use yew::prelude::*;
use yew_router::prelude::*;
#[function_component]
pub fn App() -> Html {
let counter = use_state(|| 0);
let onclick = {
let counter = counter.clone();
move |_| {
let value = *counter + 1;
counter.set(value);
#[derive(Clone, PartialEq, Routable)]
enum Route {
#[at("/")]
Home,
#[not_found]
#[at("/404")]
NotFound,
}
};
fn switch(route: Route) -> Html {
match route {
Route::Home => html! { <basic_pages::Home/>},
Route::NotFound => html! { <basic_pages::Home/> },
}
}
#[component(App)]
pub fn app() -> Html {
html! {
<div>
<button {onclick}>{ "+1" }</button>
<p>{ *counter }</p>
</div>
<BrowserRouter>
<Switch<Route> render={switch} />
</BrowserRouter>
}
}

View File

@@ -0,0 +1,30 @@
use yew::prelude::*;
#[component(Home)]
pub fn home_component() -> Html {
let counter = use_state(|| 0);
let onclick = {
let counter = counter.clone();
move |_| {
let value = *counter + 1;
counter.set(value);
}
};
html! {
<div>
<button {onclick}>{ "+1" }</button>
<p>{ *counter }</p>
</div>
}
}
#[component(NotFound)]
pub fn not_found_component() -> Html {
let message = "404 Not found";
html! {
<div>
<h1>{&message}</h1>
</div>
}
}

View File

@@ -0,0 +1 @@
pub mod basic_pages;