From e58819585e322cb9706f1c965c09c024beece78c Mon Sep 17 00:00:00 2001 From: Jeremy Wall Date: Tue, 11 Oct 2022 17:18:54 -0400 Subject: [PATCH] Collapse into Nix fixes. --- kitchen/src/web/auth.rs | 25 +++++++++++++++++++++---- recipes/src/parse.rs | 2 +- web/src/components/categories.rs | 2 +- web/src/components/recipe.rs | 6 +++--- web/src/components/recipe_selection.rs | 2 +- web/src/js_lib.rs | 9 +++++++-- 6 files changed, 34 insertions(+), 12 deletions(-) diff --git a/kitchen/src/web/auth.rs b/kitchen/src/web/auth.rs index f73af73..d7e8303 100644 --- a/kitchen/src/web/auth.rs +++ b/kitchen/src/web/auth.rs @@ -40,16 +40,28 @@ pub async fn handler( debug!("successfully authenticated user"); // 1. Create a session identifier. let mut session = Session::new(); - session.insert("user_id", auth.user_id()).unwrap(); + session + .insert("user_id", auth.user_id()) + .expect("Unable to insert user id into session"); // 2. Store the session in the store. - let cookie_value = session_store.store_session(session).await.unwrap().unwrap(); + let cookie_value = session_store + .store_session(session) + .await + .expect("Unable to store session in session store") + .expect("No session cookie created"); let mut headers = HeaderMap::new(); // 3. Construct the Session Cookie. let cookie = Cookie::build(storage::AXUM_SESSION_COOKIE_NAME, cookie_value) .same_site(SameSite::Strict) .secure(true) .finish(); - headers.insert(header::SET_COOKIE, cookie.to_string().parse().unwrap()); + headers.insert( + header::SET_COOKIE, + cookie + .to_string() + .parse() + .expect("Unable to parse session cookie"), + ); // Respond with 200 OK (StatusCode::OK, headers, "Login Successful") } else { @@ -67,7 +79,12 @@ impl From for storage::UserCreds { fn from(AuthBasic((id, pass)): AuthBasic) -> Self { Self { id: storage::UserId(id.clone()), - pass: Secret::from_str(pass.clone().unwrap().as_str()).unwrap(), + pass: Secret::from_str( + pass.clone() + .expect("No password provided in BasicAuth") + .as_str(), + ) + .expect("Unable to store pass in secret"), } } } diff --git a/recipes/src/parse.rs b/recipes/src/parse.rs index b6de8cf..e7c3fe3 100644 --- a/recipes/src/parse.rs +++ b/recipes/src/parse.rs @@ -258,7 +258,7 @@ make_fn!(num, do_each!( _ => peek!(ascii_digit), n => consume_all!(ascii_digit), - (u32::from_str(n).unwrap()) + (u32::from_str(n).expect("Invalid u32 number in string")) ) ); diff --git a/web/src/components/categories.rs b/web/src/components/categories.rs index b78d889..2419244 100644 --- a/web/src/components/categories.rs +++ b/web/src/components/categories.rs @@ -23,7 +23,7 @@ use crate::{js_lib::get_element_by_id, service::AppService}; fn get_error_dialog() -> HtmlDialogElement { get_element_by_id::("error-dialog") .expect("error-dialog isn't an html dialog element!") - .unwrap() + .expect("No error-dialog element present") } fn check_category_text_parses(unparsed: &str, error_text: &Signal) -> bool { diff --git a/web/src/components/recipe.rs b/web/src/components/recipe.rs index b7866cd..cace283 100644 --- a/web/src/components/recipe.rs +++ b/web/src/components/recipe.rs @@ -22,7 +22,7 @@ use recipes; fn get_error_dialog() -> HtmlDialogElement { get_element_by_id::("error-dialog") .expect("error-dialog isn't an html dialog element!") - .unwrap() + .expect("error-dialog element isn't present") } fn check_recipe_parses(text: &str, error_text: &Signal) -> bool { @@ -139,9 +139,9 @@ pub fn Recipe<'ctx, G: Html>(cx: Scope<'ctx>, recipe_id: String) -> View { // FIXME(jwall): This has too many unwrap() calls if let Some(recipe) = app_service .fetch_recipes_from_storage() - .unwrap() + .expect("Failed to fetch recipes from storage") .1 - .unwrap() + .expect(&format!("No recipe counts for recipe id: {}", recipe_id)) .get(&recipe_id) { let recipe = create_signal(cx, recipe.clone()); diff --git a/web/src/components/recipe_selection.rs b/web/src/components/recipe_selection.rs index ed48be7..2a6cd6b 100644 --- a/web/src/components/recipe_selection.rs +++ b/web/src/components/recipe_selection.rs @@ -53,7 +53,7 @@ pub fn RecipeSelection(cx: Scope, props: RecipeCheckBoxProps) -> View(id: &str) -> Result, Element> where E: JsCast, { - match window().unwrap().document().unwrap().get_element_by_id(id) { + match window() + .expect("No window present") + .document() + .expect("No document in window") + .get_element_by_id(id) + { Some(e) => e.dyn_into::().map(|e| Some(e)), None => Ok(None), } } pub fn get_storage() -> Result, JsValue> { - window().unwrap().local_storage() + window().expect("No Window Present").local_storage() }