From eaf04675e32e9f4e128301c0109ec9a7925f0b95 Mon Sep 17 00:00:00 2001 From: Mystikfluu Date: Sat, 1 Apr 2023 17:05:06 +0200 Subject: [PATCH] Use Option instead of String for get_token --- src/lib.rs | 56 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index ba16c37..f4a4ea8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -27,28 +27,35 @@ struct Saved { _errorcode: u64 } -fn get_token() -> String { +fn get_token() -> Option { let mut token: String = String::new(); //check if file exists if !std::path::Path::new(&(get_ipass_folder()+"token.ipasst")).exists() { - return "".to_string(); + return None; } File::open(get_ipass_folder()+"token.ipasst").unwrap().read_to_string(&mut token).unwrap(); - token + Some(token) } pub async fn isync_get() -> bool { let token = get_token(); - let client = reqwest::Client::builder().https_only(true).build().unwrap(); - let req = client.get("https://ipass.ipost.rocks/saved").header("ipass-auth-token", token).build().unwrap(); - let res = client.execute(req).await.unwrap(); - let body = res.json::().await.unwrap(); - if body.success { - File::create(get_ipass_folder()+"temp.ipassx").unwrap().write_all(&body.data).unwrap(); - import_file(&(get_ipass_folder()+"temp.ipassx")); - std::fs::remove_file(get_ipass_folder()+"temp.ipassx").unwrap(); - return true; + match token { + Some(token) => { + let client = reqwest::Client::builder().https_only(true).build().unwrap(); + let req = client.get("https://ipass.ipost.rocks/saved").header("ipass-auth-token", token).build().unwrap(); + let res = client.execute(req).await.unwrap(); + let body = res.json::().await.unwrap(); + if body.success { + File::create(get_ipass_folder()+"temp.ipassx").unwrap().write_all(&body.data).unwrap(); + import_file(&(get_ipass_folder()+"temp.ipassx")); + std::fs::remove_file(get_ipass_folder()+"temp.ipassx").unwrap(); + return true; + } + }, + None => { + return false; + } } false @@ -59,15 +66,22 @@ pub async fn isync_save() -> bool { match possible_data { Some(data) => { let token = get_token(); - let client = reqwest::Client::builder().https_only(true).build().unwrap(); - let req = client.post("https://ipass.ipost.rocks/saved") - .header("ipass-auth-token", token) - .body(data) - .build() - .unwrap(); - let _res = client.execute(req).await.unwrap(); - //sent data - true + match token { + Some(token) => { + let client = reqwest::Client::builder().https_only(true).build().unwrap(); + let req = client.post("https://ipass.ipost.rocks/saved") + .header("ipass-auth-token", token) + .body(data) + .build() + .unwrap(); + let _res = client.execute(req).await.unwrap(); + //sent data + true + }, + None => { + false + } + } }, None => { false