diff --git a/Cargo.lock b/Cargo.lock index d04e23e..713aab8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -664,20 +664,6 @@ dependencies = [ "tokio-util", ] -[[package]] -name = "config" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23738e11972c7643e4ec947840fc463b6a571afcd3e735bdfce7d03c7a784aca" -dependencies = [ - "async-trait", - "lazy_static", - "nom", - "pathdiff", - "serde", - "toml 0.5.11", -] - [[package]] name = "config" version = "0.14.0" @@ -754,22 +740,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" - [[package]] name = "cpufeatures" version = "0.2.11" @@ -1321,17 +1291,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.11", - "pin-project-lite", -] - [[package]] name = "http-range" version = "0.1.5" @@ -1350,30 +1309,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "hyper" -version = "0.14.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http 0.2.11", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "icondata" version = "0.3.0" @@ -1625,30 +1560,6 @@ version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8573b2b1fb643a372c73b23f4da5f888677feef3305146d68a539250a9bccc7" -[[package]] -name = "ipnet" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.12.1" @@ -1696,17 +1607,17 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "leptos" -version = "0.5.4" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d02b78d6e38acf8199426058a0d8c4030835d84a4ee16147df25be7fed707e0" +checksum = "56d079555ff18158a1ed28d2a8ac529b4cb5904490384064346eb2d321addde6" dependencies = [ "cfg-if", - "leptos_config 0.5.4", - "leptos_dom 0.5.4", - "leptos_macro 0.5.4", - "leptos_reactive 0.5.4", - "leptos_server 0.5.4", - "server_fn 0.5.4", + "leptos_config", + "leptos_dom", + "leptos_macro", + "leptos_reactive", + "leptos_server", + "server_fn", "tracing", "typed-builder", "typed-builder-macro", @@ -1715,100 +1626,40 @@ dependencies = [ ] [[package]] -name = "leptos" +name = "leptos_actix" version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56d079555ff18158a1ed28d2a8ac529b4cb5904490384064346eb2d321addde6" -dependencies = [ - "cfg-if", - "leptos_config 0.6.9", - "leptos_dom 0.6.9", - "leptos_macro 0.6.9", - "leptos_reactive 0.6.9", - "leptos_server 0.6.9", - "server_fn 0.6.9", - "tracing", - "typed-builder", - "typed-builder-macro", - "web-sys", -] - -[[package]] -name = "leptos_actix" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b2b118a031de24b39be9ef2dcfa03e7e255e98d06a8aa2c53f220155424cf1" +checksum = "9edb4789a15864a26d695038f42dcdf1d1c32d3a1f537751ce177c97f4f5e3dd" dependencies = [ "actix-http", "actix-web", "futures", - "leptos 0.5.4", + "leptos", "leptos_integration_utils", + "leptos_macro", "leptos_meta", "leptos_router", "parking_lot", "regex", "serde_json", + "server_fn", "tokio", "tracing", ] -[[package]] -name = "leptos_config" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afcaa5db5b22b794b624e14ffe2aefae215b2d21c60a230ae2d06fe21ae5da64" -dependencies = [ - "config 0.13.4", - "regex", - "serde", - "thiserror", - "typed-builder", -] - [[package]] name = "leptos_config" version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d80b4ed5f0447996b9a28879002f995d3770687630f568be41307f362f84cb7" dependencies = [ - "config 0.14.0", + "config", "regex", "serde", "thiserror", "typed-builder", ] -[[package]] -name = "leptos_dom" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af459b63567e8e9c921ecbe7863732dc8dcb7874eaad6826b7d3778a53ec0ea6" -dependencies = [ - "async-recursion", - "cfg-if", - "drain_filter_polyfill", - "futures", - "getrandom", - "html-escape", - "indexmap", - "itertools 0.10.5", - "js-sys", - "leptos_reactive 0.5.4", - "once_cell", - "pad-adapter", - "paste", - "rustc-hash", - "serde", - "serde_json", - "server_fn 0.5.4", - "smallvec", - "tracing", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "leptos_dom" version = "0.6.9" @@ -1822,16 +1673,16 @@ dependencies = [ "getrandom", "html-escape", "indexmap", - "itertools 0.12.1", + "itertools", "js-sys", - "leptos_reactive 0.6.9", + "leptos_reactive", "once_cell", "pad-adapter", "paste", "rustc-hash", "serde", "serde_json", - "server_fn 0.6.9", + "server_fn", "smallvec", "tracing", "wasm-bindgen", @@ -1839,24 +1690,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "leptos_hot_reload" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea60376eb80a24b3ab082612d62211e3ea0fc4dee132f7ff34d5fa5a5108cd2" -dependencies = [ - "anyhow", - "camino", - "indexmap", - "parking_lot", - "proc-macro2", - "quote", - "rstml", - "serde", - "syn 2.0.48", - "walkdir", -] - [[package]] name = "leptos_hot_reload" version = "0.6.9" @@ -1885,48 +1718,25 @@ dependencies = [ "encoding_rs", "icondata_core", "lazy_static", - "leptos 0.6.9", + "leptos", "log", "paste", ] [[package]] name = "leptos_integration_utils" -version = "0.5.4" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dbbd7d721bcdd9aa7b20987063de41314c836a3ac67e263ca489857e337dec" +checksum = "ff00799857159434d31b6bd1898e21c63f69f39289621da5a554fcab1c3e7300" dependencies = [ "futures", - "leptos 0.5.4", - "leptos_config 0.5.4", - "leptos_hot_reload 0.5.4", + "leptos", + "leptos_config", + "leptos_hot_reload", "leptos_meta", "tracing", ] -[[package]] -name = "leptos_macro" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7e96f4c450f4b5e2ccb135c2b1328890f911ca4ee89da9ed6d582df929e6cb5" -dependencies = [ - "attribute-derive", - "cfg-if", - "convert_case 0.6.0", - "html-escape", - "itertools 0.11.0", - "leptos_hot_reload 0.5.4", - "prettyplease", - "proc-macro-error", - "proc-macro2", - "quote", - "rstml", - "server_fn_macro 0.5.4", - "syn 2.0.48", - "tracing", - "uuid", -] - [[package]] name = "leptos_macro" version = "0.6.9" @@ -1937,14 +1747,14 @@ dependencies = [ "cfg-if", "convert_case 0.6.0", "html-escape", - "itertools 0.12.1", - "leptos_hot_reload 0.6.9", + "itertools", + "leptos_hot_reload", "prettyplease", "proc-macro-error", "proc-macro2", "quote", "rstml", - "server_fn_macro 0.6.9", + "server_fn_macro", "syn 2.0.48", "tracing", "uuid", @@ -1952,46 +1762,18 @@ dependencies = [ [[package]] name = "leptos_meta" -version = "0.5.4" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "983bbf829598d275b01e96bd9fca71e4739dd7b9fdf69cb8898b30ebfb124332" +checksum = "12b9dac59a2f88f5235dbe17cfa81b738a6f47238a64e4f23b921f1a90a9bf11" dependencies = [ "cfg-if", "indexmap", - "leptos 0.5.4", + "leptos", "tracing", "wasm-bindgen", "web-sys", ] -[[package]] -name = "leptos_reactive" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22207568e096ac153ba8da68635e3136c1ec614ea9012736fa861c05bfb2eeff" -dependencies = [ - "base64 0.21.5", - "cfg-if", - "futures", - "indexmap", - "js-sys", - "paste", - "pin-project", - "rkyv", - "rustc-hash", - "self_cell", - "serde", - "serde-wasm-bindgen 0.5.0", - "serde_json", - "slotmap", - "thiserror", - "tokio", - "tracing", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "leptos_reactive" version = "0.6.9" @@ -2002,32 +1784,37 @@ dependencies = [ "cfg-if", "futures", "indexmap", + "js-sys", "paste", "pin-project", + "rkyv", "rustc-hash", "self_cell", "serde", - "serde-wasm-bindgen 0.6.5", + "serde-wasm-bindgen", "serde_json", "slotmap", "thiserror", + "tokio", "tracing", + "wasm-bindgen", "wasm-bindgen-futures", + "web-sys", ] [[package]] name = "leptos_router" -version = "0.5.4" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1a2ff8b8e8ae8b17efd8be2a407f7f83ed57c5243f70f2d03e6635f9ff61848" +checksum = "9460a5dc184fa05d8eb635b687ad3220d02d2d23d6f49c3bf146aa71e427f423" dependencies = [ "cached", "cfg-if", "gloo-net 0.2.6", - "itertools 0.11.0", + "itertools", "js-sys", "lazy_static", - "leptos 0.5.4", + "leptos", "leptos_integration_utils", "leptos_meta", "linear-map", @@ -2035,6 +1822,7 @@ dependencies = [ "once_cell", "percent-encoding", "regex", + "send_wrapper", "serde", "serde_json", "serde_qs", @@ -2046,22 +1834,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "leptos_server" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "272d018a5adf33d10ee57e6f0f83dccc305c68613cd207e8a653aeebd4cd5b4f" -dependencies = [ - "inventory", - "lazy_static", - "leptos_macro 0.5.4", - "leptos_reactive 0.5.4", - "serde", - "server_fn 0.5.4", - "thiserror", - "tracing", -] - [[package]] name = "leptos_server" version = "0.6.9" @@ -2070,10 +1842,10 @@ checksum = "654b6ff6a24e79977641b5214452373b1e12fdf4c8a563fadf656c139694b4b9" dependencies = [ "inventory", "lazy_static", - "leptos_macro 0.6.9", - "leptos_reactive 0.6.9", + "leptos_macro", + "leptos_reactive", "serde", - "server_fn 0.6.9", + "server_fn", "thiserror", "tracing", ] @@ -2101,7 +1873,7 @@ dependencies = [ "http 0.2.11", "icondata", "lazy_static", - "leptos 0.5.4", + "leptos", "leptos_actix", "leptos_icons", "leptos_meta", @@ -2708,41 +2480,6 @@ dependencies = [ "bytecheck", ] -[[package]] -name = "reqwest" -version = "0.11.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41" -dependencies = [ - "base64 0.21.5", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http 0.2.11", - "http-body", - "hyper", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "system-configuration", - "tokio", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - [[package]] name = "rkyv" version = "0.7.43" @@ -2873,17 +2610,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde-wasm-bindgen" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e" -dependencies = [ - "js-sys", - "serde", - "wasm-bindgen", -] - [[package]] name = "serde-wasm-bindgen" version = "0.6.5" @@ -2958,37 +2684,13 @@ dependencies = [ "serde", ] -[[package]] -name = "server_fn" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfed18dfcc8d9004579c40482c3419c07f60ffb9c5b250542edca99f508b0ce9" -dependencies = [ - "ciborium", - "const_format", - "gloo-net 0.2.6", - "inventory", - "js-sys", - "lazy_static", - "once_cell", - "proc-macro2", - "quote", - "reqwest", - "serde", - "serde_json", - "serde_qs", - "server_fn_macro_default 0.5.4", - "syn 2.0.48", - "thiserror", - "xxhash-rust", -] - [[package]] name = "server_fn" version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2955da1dc5fcd970c182ebf1089af6c5f19051e1f286a21f7b96490a49b7a531" dependencies = [ + "actix-web", "bytes", "ciborium", "const_format", @@ -2996,13 +2698,14 @@ dependencies = [ "futures", "gloo-net 0.5.0", "http 1.1.0", + "inventory", "js-sys", "once_cell", "send_wrapper", "serde", "serde_json", "serde_qs", - "server_fn_macro_default 0.6.9", + "server_fn_macro_default", "thiserror", "url", "wasm-bindgen", @@ -3012,21 +2715,6 @@ dependencies = [ "xxhash-rust", ] -[[package]] -name = "server_fn_macro" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b70ae8e22546ba85500391b36c08e3fba64871be8a26557a3663a8e08acb56f" -dependencies = [ - "const_format", - "proc-macro-error", - "proc-macro2", - "quote", - "serde", - "syn 2.0.48", - "xxhash-rust", -] - [[package]] name = "server_fn_macro" version = "0.6.9" @@ -3041,23 +2729,13 @@ dependencies = [ "xxhash-rust", ] -[[package]] -name = "server_fn_macro_default" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7256ba61dfadb220598db418376e7bc2a34b96df36c4dc48f24ffe161810fc0b" -dependencies = [ - "server_fn_macro 0.5.4", - "syn 2.0.48", -] - [[package]] name = "server_fn_macro_default" version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "060af1def72353a779fcc184c53e1965d3055a38b9e827f2259b2bff2d9c371e" dependencies = [ - "server_fn_macro 0.6.9", + "server_fn_macro", "syn 2.0.48", ] @@ -3179,27 +2857,6 @@ dependencies = [ "syn 2.0.48", ] -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "tap" version = "1.0.1" @@ -3314,15 +2971,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - [[package]] name = "toml" version = "0.7.8" @@ -3382,12 +3030,6 @@ dependencies = [ "winnow 0.6.5", ] -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - [[package]] name = "tracing" version = "0.1.40" @@ -3420,12 +3062,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - [[package]] name = "typed-builder" version = "0.18.0" @@ -3552,15 +3188,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3771,16 +3398,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys", -] - [[package]] name = "wyz" version = "0.5.1" diff --git a/Cargo.toml b/Cargo.toml index 9a0d7c7..74c9069 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,10 +13,10 @@ actix-web = { version = "4", optional = true, features = ["macros"] } console_error_panic_hook = "0.1" cfg-if = "1" http = { version = "0.2", optional = true } -leptos = { version = "0.5", features = ["nightly"] } -leptos_meta = { version = "0.5", features = ["nightly"] } -leptos_actix = { version = "0.5", optional = true } -leptos_router = { version = "0.5", features = ["nightly"] } +leptos = { version = "0.6", features = ["nightly"] } +leptos_meta = { version = "0.6", features = ["nightly"] } +leptos_actix = { version = "0.6", optional = true } +leptos_router = { version = "0.6", features = ["nightly"] } wasm-bindgen = "=0.2.89" leptos_icons = { version = "0.3.0" } icondata = { version = "0.3.0" } diff --git a/src/auth.rs b/src/auth.rs index 1995deb..6de6f3f 100644 --- a/src/auth.rs +++ b/src/auth.rs @@ -1,4 +1,5 @@ use leptos::*; +use leptos::server_fn::error::NoCustomError; use crate::models::User; /// Create a new user and log them in @@ -19,13 +20,17 @@ pub async fn signup(new_user: User) -> Result<(), ServerFnError> { }; create_user(&new_user).await - .map_err(|e| ServerFnError::ServerError(format!("Error creating user: {}", e)))?; + .map_err(|e| ServerFnError::::ServerError(format!("Error creating user: {}", e)))?; - extract(|request: HttpRequest| async move { - Identity::login(&request.extensions(), new_user.username.clone()) - }).await??; - - Ok(()) + match extract::().await { + Ok(request) => { + match Identity::login(&request.extensions(), new_user.username.clone()) { + Ok(_) => Ok(()), + Err(e) => Err(ServerFnError::::ServerError(format!("Error logging in user: {}", e))), + } + }, + Err(e) => Err(ServerFnError::::ServerError(format!("Error getting request: {}", e))), + } } /// Log a user in @@ -39,18 +44,22 @@ pub async fn login(username_or_email: String, password: String) -> Result::ServerError(format!("Error validating user: {}", e)))?; let user = match possible_user { Some(user) => user, None => return Ok(false) }; - extract(|request: HttpRequest| async move { - Identity::login(&request.extensions(), user.username.clone()) - }).await??; - - Ok(true) + match extract::().await { + Ok(request) => { + match Identity::login(&request.extensions(), user.username.clone()) { + Ok(_) => Ok(true), + Err(e) => Err(ServerFnError::::ServerError(format!("Error logging in user: {}", e))), + } + } + Err(e) => Err(ServerFnError::::ServerError(format!("Error getting request: {}", e))), + } } /// Log a user out @@ -60,11 +69,11 @@ pub async fn logout() -> Result<(), ServerFnError> { use leptos_actix::extract; use actix_identity::Identity; - extract(|user: Option| async move { - if let Some(user) = user { - user.logout(); - } - }).await?; + match extract::>().await { + Ok(Some(user)) => user.logout(), + Ok(None) => {}, + Err(e) => return Err(ServerFnError::::ServerError(format!("Error getting user: {}", e))), + }; Ok(()) } diff --git a/src/users.rs b/src/users.rs index 7d81b31..e1ab382 100644 --- a/src/users.rs +++ b/src/users.rs @@ -14,6 +14,7 @@ cfg_if::cfg_if! { } use leptos::*; +use leptos::server_fn::error::NoCustomError; use crate::models::User; /// Get a user from the database by username or email @@ -26,7 +27,7 @@ pub async fn find_user(username_or_email: String) -> Result, Server let db_con = &mut get_db_conn(); let user = users.filter(username.eq(username_or_email.clone())).or_filter(email.eq(username_or_email)) .first::(db_con).optional() - .map_err(|e| ServerFnError::ServerError(format!("Error getting user from database: {}", e)))?; + .map_err(|e| ServerFnError::::ServerError(format!("Error getting user from database: {}", e)))?; Ok(user) } @@ -38,11 +39,11 @@ pub async fn create_user(new_user: &User) -> Result<(), ServerFnError> { use crate::schema::users::dsl::*; let new_password = new_user.password.clone() - .ok_or(ServerFnError::ServerError(format!("No password provided for user {}", new_user.username)))?; + .ok_or(ServerFnError::::ServerError(format!("No password provided for user {}", new_user.username)))?; let salt = SaltString::generate(&mut OsRng); let password_hash = Pbkdf2.hash_password(new_password.as_bytes(), &salt) - .map_err(|_| ServerFnError::ServerError("Error hashing password".to_string()))?.to_string(); + .map_err(|_| ServerFnError::::ServerError("Error hashing password".to_string()))?.to_string(); let new_user = User { password: Some(password_hash), @@ -52,7 +53,7 @@ pub async fn create_user(new_user: &User) -> Result<(), ServerFnError> { let db_con = &mut get_db_conn(); diesel::insert_into(users).values(&new_user).execute(db_con) - .map_err(|e| ServerFnError::ServerError(format!("Error creating user: {}", e)))?; + .map_err(|e| ServerFnError::::ServerError(format!("Error creating user: {}", e)))?; Ok(()) } @@ -62,7 +63,7 @@ pub async fn create_user(new_user: &User) -> Result<(), ServerFnError> { #[cfg(feature = "ssr")] pub async fn validate_user(username_or_email: String, password: String) -> Result, ServerFnError> { let db_user = find_user(username_or_email.clone()).await - .map_err(|e| ServerFnError::ServerError(format!("Error getting user from database: {}", e)))?; + .map_err(|e| ServerFnError::::ServerError(format!("Error getting user from database: {}", e)))?; // If the user is not found, return None let db_user = match db_user { @@ -71,10 +72,10 @@ pub async fn validate_user(username_or_email: String, password: String) -> Resul }; let db_password = db_user.password.clone() - .ok_or(ServerFnError::ServerError(format!("No password found for user {}", db_user.username)))?; + .ok_or(ServerFnError::::ServerError(format!("No password found for user {}", db_user.username)))?; let password_hash = PasswordHash::new(&db_password) - .map_err(|e| ServerFnError::ServerError(format!("Error hashing supplied password: {}", e)))?; + .map_err(|e| ServerFnError::::ServerError(format!("Error hashing supplied password: {}", e)))?; match Pbkdf2.verify_password(password.as_bytes(), &password_hash) { Ok(()) => {}, @@ -82,7 +83,7 @@ pub async fn validate_user(username_or_email: String, password: String) -> Resul return Ok(None); }, Err(e) => { - return Err(ServerFnError::ServerError(format!("Error verifying password: {}", e))); + return Err(ServerFnError::::ServerError(format!("Error verifying password: {}", e))); } }