From 79f53af864312e4171aaa047a7dabd46375b2987 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sat, 22 May 2021 19:52:26 +0200 Subject: event_id_from_base64(): Return a `Result` --- src/main.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main.rs b/src/main.rs index 1a8316d..8428b90 100644 --- a/src/main.rs +++ b/src/main.rs @@ -108,7 +108,7 @@ async fn run() -> Result<(), Box> { for event_id in &event_ids { let event = rsvp( - &event_id_from_base64(event_id), + &event_id_from_base64(event_id)?, &action, ).await; @@ -189,16 +189,20 @@ fn secret_from_file() -> oauth2::ApplicationSecret { } } -fn event_id_from_base64(event_id: &str) -> String { +fn event_id_from_base64(event_id: &str) -> anyhow::Result { let decoded = match base64::decode(event_id) { Ok(d) => d, - Err(_) => return event_id.to_owned(), + Err(_) => return Ok(event_id.to_owned()), }; - let id_email_pair = str::from_utf8(&decoded).unwrap(); + let id_email_pair = str::from_utf8(&decoded)?; let values = id_email_pair.split(" ").collect::>(); - let id = values.first().unwrap().to_string(); + let id = values.first() + .ok_or( + anyhow::anyhow!("unable to extract event ID from '{}'", id_email_pair), + )? + .to_string(); - id + Ok(id) } fn eid_from_email(email: &[u8]) -> String { -- cgit v1.2.3