From 88cd49db47fd8f3641095641b26cad8a5247f811 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Thu, 29 Feb 2024 07:31:57 +0100 Subject: [PATCH] refactor: extract methods --- src/main.rs | 75 +++++++++++++++++++---------------------------------- 1 file changed, 27 insertions(+), 48 deletions(-) diff --git a/src/main.rs b/src/main.rs index a42e546..ddac7d5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -36,6 +36,27 @@ mod database; mod opal; mod resources; +fn request_password_if_none(password: Option) -> String { + if let Some(password) = password { + password + } else { + let password = dialoguer::Password::new() + .with_prompt("Password") + .interact() + .unwrap_or_default(); + let _ = Term::stdout().clear_last_lines(1); + password + } +} + +fn sanitize_year(year: String) -> String { + if year.len() == 4 { + year + } else { + format!("2{:0>3}", year) + } +} + fn print_items(items: &[Icd10GroupSize]) { let term = Term::stdout(); let _ = term.write_line( @@ -66,22 +87,8 @@ fn main() -> Result<(), Box> { user, year, } => { - let password = if let Some(password) = password { - password - } else { - let password = dialoguer::Password::new() - .with_prompt("Password") - .interact() - .unwrap_or_default(); - let _ = term.clear_last_lines(1); - password - }; - - let year = if year.len() == 4 { - year - } else { - format!("2{:0>3}", year) - }; + let password = request_password_if_none(password); + let year = sanitize_year(year); let _ = term.write_line( &style(format!("Warte auf Daten für das Diagnosejahr {}...", year)) @@ -108,22 +115,8 @@ fn main() -> Result<(), Box> { output, year, } => { - let password = if let Some(password) = password { - password - } else { - let password = dialoguer::Password::new() - .with_prompt("Password") - .interact() - .unwrap_or_default(); - let _ = term.clear_last_lines(1); - password - }; - - let year = if year.len() == 4 { - year - } else { - format!("2{:0>3}", year) - }; + let password = request_password_if_none(password); + let year = sanitize_year(year); let _ = term.write_line( &style(format!("Warte auf Daten für das Diagnosejahr {}...", year)) @@ -165,22 +158,8 @@ fn main() -> Result<(), Box> { file, year, } => { - let password = if let Some(password) = password { - password - } else { - let password = dialoguer::Password::new() - .with_prompt("Password") - .interact() - .unwrap_or_default(); - let _ = term.clear_last_lines(1); - password - }; - - let year = if year.len() == 4 { - year - } else { - format!("2{:0>3}", year) - }; + let password = request_password_if_none(password); + let year = sanitize_year(year); let _ = term.write_line( &style(format!("Warte auf Daten für das Diagnosejahr {}...", year))