@smbcloud / cli / commits / bc544e6

no unwrap

Seto Elkahfi committed Sep 11, 2023 at 11:27 UTC bc544e647d12df6518173a90f2b8c39552a628be
3 files changed +41 -33
smbpndk-cli/src/account/login/process.rs
+33 -24
@@ -12,7 +12,6 @@ use dialoguer::{theme::ColorfulTheme, Confirm, Input, Password, Select};
12 use log::debug;
13 use reqwest::{Client, StatusCode};
14 use serde::{Deserialize, Serialize};
15 -
15 use smbpndk_model::CommandResult;
16 use smbpndk_networking::smb_base_url_builder;
17 use smbpndk_utils::email_validation;
@@ -381,6 +380,39 @@ async fn input_reset_password_token() -> Result<CommandResult> {
380 }
381 }
382
383 +pub async fn process_logout() -> Result<CommandResult> {
384 + let spinner = Spinner::new(
385 + spinners::Spinners::SimpleDotsScrolling,
386 + style("Logging you out...").green().bold().to_string(),
387 + );
388 + match home::home_dir() {
389 + Some(path) => {
390 + debug!("Home directory: {}.", path.to_str().unwrap());
391 +
392 + // Check if token file exists
393 + if !path.join(".smb/token").exists() {
394 + return Ok(CommandResult {
395 + spinner,
396 + symbol: "✅".to_owned(),
397 + msg: "You are not logged in.".to_owned(),
398 + });
399 + }
400 +
401 + // Remove token file
402 + fs::remove_file(path.join(".smb/token"))?;
403 +
404 + Ok(CommandResult {
405 + spinner,
406 + symbol: "✅".to_owned(),
407 + msg: "You are now logged out!".to_owned(),
408 + })
409 + }
410 + None => Err(anyhow!("Failed to get home directory. Are you logged in?")),
411 + }
412 +}
413 +
414 +// Private functions
415 +
416 fn build_smb_login_url() -> String {
417 let mut url_builder = smb_base_url_builder();
418 url_builder.add_route("v1/users/sign_in");
@@ -404,26 +436,3 @@ fn build_smb_reset_password_url() -> String {
436 url_builder.add_route("v1/users/password");
437 url_builder.build()
438 }
407 -
408 -pub async fn process_logout() -> Result<CommandResult> {
409 - let spinner = Spinner::new(
410 - spinners::Spinners::SimpleDotsScrolling,
411 - style("Logging you out...").green().bold().to_string(),
412 - );
413 - match home::home_dir() {
414 - Some(path) => {
415 - debug!("{}", path.to_str().unwrap());
416 - fs::remove_file([path.to_str().unwrap(), "/.smb/token"].join(""))?;
417 -
418 - Ok(CommandResult {
419 - spinner,
420 - symbol: "✅".to_owned(),
421 - msg: "You are logged out!".to_owned(),
422 - })
423 - }
424 - None => {
425 - let error = anyhow!("Failed to get home directory. Are you logged in?");
426 - Err(error)
427 - }
428 - }
429 -}
smbpndk-cli/src/project/mod.rs
+6 -7
@@ -110,12 +110,8 @@ pub async fn process_project(commands: Commands) -> Result<CommandResult> {
110 })
111 }
112 Err(e) => {
113 - println!("Error: {e:#?}");
114 - Ok(CommandResult {
115 - spinner,
116 - symbol: "😩".to_owned(),
117 - msg: "Failed to get project.".to_owned(),
118 - })
113 + spinner.stop_and_persist("😩", "Failed.".to_string());
114 + Err(anyhow!("{e}"))
115 }
116 }
117 }
@@ -149,7 +145,10 @@ pub async fn process_project(commands: Commands) -> Result<CommandResult> {
145 msg: "Project has been deleted.".to_string(),
146 })
147 }
152 - Err(e) => Err(anyhow!("{e}")),
148 + Err(e) => {
149 + spinner.stop_and_persist("😩", "Failed.".to_string());
150 + Err(anyhow!("{e}"))
151 + }
152 }
153 }
154 Commands::Use { id } => {
smbpndk-networking-project/src/lib.rs
+2 -2
@@ -49,7 +49,7 @@ pub async fn create_project(project: ProjectCreate) -> Result<Project> {
49
50 pub async fn get_project(id: String) -> Result<Project> {
51 // Get current token
52 - let token = get_token().await.unwrap();
52 + let token = get_token().await?;
53
54 let response = Client::new()
55 .get(build_project_url_with_id(id))
@@ -69,7 +69,7 @@ pub async fn get_project(id: String) -> Result<Project> {
69
70 pub async fn delete_project(id: String) -> Result<()> {
71 // Get current token
72 - let token = get_token().await.unwrap();
72 + let token = get_token().await?;
73
74 let response = Client::new()
75 .delete(build_project_url_with_id(id))