From ac970a43020230a8c6c95441d051d9eee749947c Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 13 Mar 2025 19:12:49 -0400 Subject: [PATCH 01/15] Refactoring code --- src/help.rs | 38 +++++++++++++++++++++++++++++++++ src/main.rs | 27 +++++++++++------------ src/managers/action_managers.rs | 17 ++++++++++++++- src/utilities/checks.rs | 5 +++++ 4 files changed, 72 insertions(+), 15 deletions(-) create mode 100644 src/help.rs diff --git a/src/help.rs b/src/help.rs new file mode 100644 index 0000000..4eb12a7 --- /dev/null +++ b/src/help.rs @@ -0,0 +1,38 @@ + + +pub fn print_help() { + let msg: String = String::from( + r#"icd [Action] [flag] + + Actions + download + upload-meta + retrieve + delete + + Flags + Required for all actions + -u username + -p password + -h host + + Required for upload with metadata + -s path of song + -t track number + -m metadata filepath + -ca coverart filepath + -scma directory where songs, metadata, and cover art exists and will be uploaded (Optional) + + Required for download + -b song id + -d path to download song (Optional) + + Required for retrieving records + -rt retrieve type (songs is only accepted) + + Required for deleting a song + -D song id"#, + ); + + println!("{}", msg); +} \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 68c11ee..4b6dd34 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ mod constants; +mod help; mod managers; mod models; mod parsers; @@ -6,12 +7,15 @@ mod syncers; mod utilities; use std::env; -use std::process; +// use std::process; +/* fn exit_program(code: i32) { process::exit(code); } +*/ +/* fn print_help() { let msg: String = String::from( r#"icd [Action] [flag] @@ -48,29 +52,24 @@ fn print_help() { println!("{}", msg); } + */ fn main() { let args: Vec = env::args().collect(); - - if args.len() == 1 { - print_help(); - exit_program(-1); - } - let args_len = args.len() as i32; + if args_len == 1 { + help::print_help(); + utilities::checks::exit_program(-1); + } + println!("Argument count: {}", args_len); - let mut act_mgr = managers::action_managers::ActionManager { - action: String::new(), - flags: Vec::new(), - params: args, - param_count: args_len, - }; + let mut act_mgr = managers::action_managers::ActionManager::default(); + act_mgr.set_params(&args); act_mgr.initialize(); let chosen_act = act_mgr.retrieve_icarus_action(); - chosen_act.print_action_and_flags(); let mut cmt_mgr = managers::commit_manager::CommitManager { diff --git a/src/managers/action_managers.rs b/src/managers/action_managers.rs index d92af04..dde763c 100644 --- a/src/managers/action_managers.rs +++ b/src/managers/action_managers.rs @@ -10,6 +10,17 @@ pub struct ActionManager { pub param_count: i32, } +impl Default for ActionManager { + fn default() -> Self { + ActionManager { + action: String::new(), + flags: Vec::new(), + params: Vec::new(), + param_count: -1, + } + } +} + impl ActionManager { pub fn retrieve_icarus_action(&self) -> models::icarus_action::IcarusAction { return models::icarus_action::IcarusAction { @@ -45,6 +56,11 @@ impl ActionManager { self.action = self.action.to_lowercase(); } + pub fn set_params(&mut self, args: &Vec) { + self.params = args.clone(); + self.param_count = self.params.len() as i32; + } + fn validate_flags(&mut self) { println!("Validating flags"); @@ -102,7 +118,6 @@ impl ActionManager { fn does_flag_have_value(&self, flag: &String) -> bool { let flags_tmp = self.parsed_flags(); - let mut i_found: i32 = -1; for i in 0..flags_tmp.len() { diff --git a/src/utilities/checks.rs b/src/utilities/checks.rs index 96537ad..2e67710 100644 --- a/src/utilities/checks.rs +++ b/src/utilities/checks.rs @@ -26,3 +26,8 @@ impl Checks { return index; } } + + +pub fn exit_program(code: i32) { + std::process::exit(code); +} \ No newline at end of file From b52607b4e3e1363768f8509faa1111a9d67a4bf3 Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 13 Mar 2025 19:37:51 -0400 Subject: [PATCH 02/15] Code formatting --- src/help.rs | 4 +--- src/main.rs | 46 ------------------------------------ src/managers/user_manager.rs | 10 ++++++-- src/utilities/checks.rs | 3 +-- 4 files changed, 10 insertions(+), 53 deletions(-) diff --git a/src/help.rs b/src/help.rs index 4eb12a7..49ba02f 100644 --- a/src/help.rs +++ b/src/help.rs @@ -1,5 +1,3 @@ - - pub fn print_help() { let msg: String = String::from( r#"icd [Action] [flag] @@ -35,4 +33,4 @@ pub fn print_help() { ); println!("{}", msg); -} \ No newline at end of file +} diff --git a/src/main.rs b/src/main.rs index 4b6dd34..f427aa1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,52 +7,6 @@ mod syncers; mod utilities; use std::env; -// use std::process; - -/* -fn exit_program(code: i32) { - process::exit(code); -} -*/ - -/* -fn print_help() { - let msg: String = String::from( - r#"icd [Action] [flag] - - Actions - download - upload-meta - retrieve - delete - - Flags - Required for all actions - -u username - -p password - -h host - - Required for upload with metadata - -s path of song - -t track number - -m metadata filepath - -ca coverart filepath - -scma directory where songs, metadata, and cover art exists and will be uploaded (Optional) - - Required for download - -b song id - -d path to download song (Optional) - - Required for retrieving records - -rt retrieve type (songs is only accepted) - - Required for deleting a song - -D song id"#, - ); - - println!("{}", msg); -} - */ fn main() { let args: Vec = env::args().collect(); diff --git a/src/managers/user_manager.rs b/src/managers/user_manager.rs index 61607e2..16bb8f2 100644 --- a/src/managers/user_manager.rs +++ b/src/managers/user_manager.rs @@ -27,15 +27,21 @@ impl UserManager { pub fn parse_user_from_actions(&mut self) { let args = &self.ica_action.flags; + // Quit the loop when two are found + let mut amt: i32 = 0; for arg in args { let flag = &arg.flag; if flag == "-u" { self.user.username = String::from(&arg.value); + amt += 1; + } else if flag == "-p" { + self.user.password = String::from(&arg.value); + amt += 1; } - if flag == "-p" { - self.user.password = String::from(&arg.value); + if amt == 2 { + break; } } } diff --git a/src/utilities/checks.rs b/src/utilities/checks.rs index 2e67710..a880430 100644 --- a/src/utilities/checks.rs +++ b/src/utilities/checks.rs @@ -27,7 +27,6 @@ impl Checks { } } - pub fn exit_program(code: i32) { std::process::exit(code); -} \ No newline at end of file +} From b8dccca158f5efd1f945681af67314a5272d57f3 Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 13 Mar 2025 19:39:53 -0400 Subject: [PATCH 03/15] More changes --- src/managers/action_managers.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/managers/action_managers.rs b/src/managers/action_managers.rs index dde763c..b4d3553 100644 --- a/src/managers/action_managers.rs +++ b/src/managers/action_managers.rs @@ -1,6 +1,6 @@ use serde::{Deserialize, Serialize}; -use crate::models; +use crate::{models, utilities}; #[derive(Debug, Deserialize, Serialize)] pub struct ActionManager { @@ -86,7 +86,7 @@ impl ActionManager { flg.flag = String::from(flag); } else { println!("Flag {} is not valid", flag); - std::process::exit(-1); + utilities::checks::exit_program(-1); } self.flags.push(flg); From c76e7b71b5c47f01a63f62991c51e96b9b955d24 Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 13 Mar 2025 19:59:09 -0400 Subject: [PATCH 04/15] Moved to icarus-models::user --- src/managers/commit_manager.rs | 11 +++++++---- src/managers/token_manager.rs | 4 ++-- src/managers/user_manager.rs | 6 +++--- src/models/user.rs | 2 ++ 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index c4112a6..a9ce7f5 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -238,14 +238,17 @@ impl CommitManager { let mut usr_mgr: managers::user_manager::UserManager = managers::user_manager::UserManager { - user: models::user::User { - username: String::new(), - password: String::new(), - }, + user: icarus_models::user::User::default(), ica_action: self.ica_action.clone(), }; usr_mgr.parse_user_from_actions(); + // let mut new_usr = icarus_models::user::User::default(); + // new_usr.username = usr_mgr.user.username.clone(); + // new_usr.password = usr_mgr.user.password.clone(); + + println!("Username: {}", usr_mgr.user.username); + let usr = usr_mgr.retrieve_user(); let mut tok_mgr = managers::token_manager::TokenManager { user: usr, diff --git a/src/managers/token_manager.rs b/src/managers/token_manager.rs index 8ba8a1d..463471b 100644 --- a/src/managers/token_manager.rs +++ b/src/managers/token_manager.rs @@ -3,14 +3,14 @@ use std::default::Default; use crate::models; pub struct TokenManager { - pub user: models::user::User, + pub user: icarus_models::user::User, pub api: models::api::API, } impl Default for TokenManager { fn default() -> Self { let mut token = TokenManager { - user: models::user::User::default(), + user: icarus_models::user::User::default(), api: models::api::API::default(), }; diff --git a/src/managers/user_manager.rs b/src/managers/user_manager.rs index 16bb8f2..cf52bd8 100644 --- a/src/managers/user_manager.rs +++ b/src/managers/user_manager.rs @@ -6,21 +6,21 @@ use crate::models::{self}; #[derive(Debug, Deserialize, Serialize)] pub struct UserManager { - pub user: models::user::User, + pub user: icarus_models::user::User, pub ica_action: models::icarus_action::IcarusAction, } impl Default for UserManager { fn default() -> Self { UserManager { - user: models::user::User::default(), + user: icarus_models::user::User::default(), ica_action: models::icarus_action::IcarusAction::default(), } } } impl UserManager { - pub fn retrieve_user(&self) -> models::user::User { + pub fn retrieve_user(&self) -> icarus_models::user::User { return self.user.clone(); } diff --git a/src/models/user.rs b/src/models/user.rs index 46a37c0..3eaeead 100644 --- a/src/models/user.rs +++ b/src/models/user.rs @@ -1,3 +1,4 @@ +/* use std::default::Default; use serde::{Deserialize, Serialize}; @@ -22,3 +23,4 @@ impl User { return serde_json::to_string_pretty(&self); } } +*/ From b2e246d175a1ebe280672b43f2284a524651847d Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 13 Mar 2025 20:49:29 -0400 Subject: [PATCH 05/15] Some refactoring --- src/managers/commit_manager.rs | 2 ++ src/managers/token_manager.rs | 2 +- src/models/mod.rs | 3 +-- src/models/user.rs | 26 -------------------------- 4 files changed, 4 insertions(+), 29 deletions(-) delete mode 100644 src/models/user.rs diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index a9ce7f5..91918db 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -175,6 +175,7 @@ impl CommitManager { let api = prsr.retrieve_api(); let token = self.parse_token(&api); + println!("Message: {}", token.message.clone().unwrap()); let mut dwn_loader = syncers::download::Download { api: api.clone() }; let mut song = models::song::Song::default(); @@ -248,6 +249,7 @@ impl CommitManager { // new_usr.password = usr_mgr.user.password.clone(); println!("Username: {}", usr_mgr.user.username); + println!("Other: {}", usr_mgr.user.id); let usr = usr_mgr.retrieve_user(); let mut tok_mgr = managers::token_manager::TokenManager { diff --git a/src/managers/token_manager.rs b/src/managers/token_manager.rs index 463471b..240018f 100644 --- a/src/managers/token_manager.rs +++ b/src/managers/token_manager.rs @@ -66,7 +66,7 @@ impl TokenManager { let api = &self.api; let mut url = String::from(&api.url); url += &String::from(&api.endpoint); - url += &String::from("/"); + // url += &String::from("/"); return url; } diff --git a/src/models/mod.rs b/src/models/mod.rs index 986c861..bc27880 100644 --- a/src/models/mod.rs +++ b/src/models/mod.rs @@ -3,5 +3,4 @@ pub mod flags; pub mod icarus_action; pub mod song; pub mod token; -pub mod upload_form; -pub mod user; +pub mod upload_form; \ No newline at end of file diff --git a/src/models/user.rs b/src/models/user.rs deleted file mode 100644 index 3eaeead..0000000 --- a/src/models/user.rs +++ /dev/null @@ -1,26 +0,0 @@ -/* -use std::default::Default; - -use serde::{Deserialize, Serialize}; - -#[derive(Clone, Debug, Deserialize, Serialize)] -pub struct User { - pub username: String, - pub password: String, -} - -impl Default for User { - fn default() -> Self { - User { - username: String::new(), - password: String::new(), - } - } -} - -impl User { - pub fn _to_json(&self) -> Result { - return serde_json::to_string_pretty(&self); - } -} -*/ From 69b81bc15c378531f6cd4d09b180b2f025b604e7 Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 13 Mar 2025 20:50:13 -0400 Subject: [PATCH 06/15] Updated icarus-models --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 1fbe048..df0de8c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ serde = { version = "1.0.219", features = ["derive"] } serde_json = "1.0.140" tokio = { version = "1.44.0", features = ["full"] } tokio-util = { version = "0.7.13", features = ["codec"] } -icarus-models = { git = "ssh://git@gitlab.com/kdeng00/icarus-models.git", tag = "v0.1.1" } +icarus-models = { git = "ssh://git@gitlab.com/kdeng00/icarus-models.git", tag = "v0.1.6" } From 038142eb8af8f670518a47179ec5ee904b973ef3 Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 13 Mar 2025 20:53:43 -0400 Subject: [PATCH 07/15] Removing constants --- src/constants/file_extensions.rs | 4 ---- src/constants/mod.rs | 1 - src/main.rs | 1 - 3 files changed, 6 deletions(-) delete mode 100644 src/constants/file_extensions.rs delete mode 100644 src/constants/mod.rs diff --git a/src/constants/file_extensions.rs b/src/constants/file_extensions.rs deleted file mode 100644 index 3a217ce..0000000 --- a/src/constants/file_extensions.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub const WAV_FILE_EXTENSION: &str = ".wav"; -pub const FLAC_FILE_EXTENSION: &str = ".flac"; -pub const _MP3_FILE_EXTENSION: &str = ".mp3"; -pub const JPG_FILE_EXTENSION: &str = ".jpg"; diff --git a/src/constants/mod.rs b/src/constants/mod.rs deleted file mode 100644 index 071d79c..0000000 --- a/src/constants/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod file_extensions; diff --git a/src/main.rs b/src/main.rs index f427aa1..5c9e438 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,3 @@ -mod constants; mod help; mod managers; mod models; From df60bef381a02732b3f10d348ffb75aad86f0a72 Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 13 Mar 2025 20:58:19 -0400 Subject: [PATCH 08/15] Replaced with icarus-models constants --- src/managers/commit_manager.rs | 4 ++-- src/models/song.rs | 6 ++---- src/syncers/upload.rs | 9 ++++----- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index 91918db..4857495 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -12,7 +12,7 @@ use crate::models::song::Album; use crate::models::{self}; use crate::syncers; use crate::utilities; -use crate::{constants, parsers}; +use crate::parsers; #[derive(Debug, Deserialize, Serialize)] pub struct CommitManager { @@ -186,7 +186,7 @@ impl CommitManager { Ok(o) => { println!("Success"); let mut filename = String::from("audio"); - filename += constants::file_extensions::WAV_FILE_EXTENSION; + filename += icarus_models::constants::WAV_EXTENSION; let data = o.as_bytes(); let mut file = std::fs::File::create(filename).expect("Failed to save"); file.write_all(&data).expect("ff"); diff --git a/src/models/song.rs b/src/models/song.rs index 1f23852..aa7700d 100644 --- a/src/models/song.rs +++ b/src/models/song.rs @@ -3,8 +3,6 @@ use std::io::Read; use serde::{Deserialize, Serialize}; -use crate::constants; - #[derive(Clone, Debug, Deserialize, Serialize)] pub struct Song { #[serde(alias = "id")] @@ -127,9 +125,9 @@ impl Song { filename += &self.track.unwrap().to_string(); if i_type == 0 { - filename += constants::file_extensions::_MP3_FILE_EXTENSION; + filename += icarus_models::constants::MPTHREE_EXTENSION; } else { - filename += constants::file_extensions::WAV_FILE_EXTENSION; + filename += icarus_models::constants::WAV_EXTENSION; } self.filename = Some(filename); diff --git a/src/syncers/upload.rs b/src/syncers/upload.rs index bb8b65b..5281b37 100644 --- a/src/syncers/upload.rs +++ b/src/syncers/upload.rs @@ -6,7 +6,6 @@ use reqwest; use reqwest::multipart::Form; use serde::{Deserialize, Serialize}; -use crate::constants; use crate::models; pub struct Upload { @@ -110,9 +109,9 @@ impl Upload { let cover = reqwest::multipart::Part::bytes(cover_raw_data).headers(headers_i); let mut song_filename = String::from("audio"); - song_filename += constants::file_extensions::WAV_FILE_EXTENSION; + song_filename += icarus_models::constants::WAV_EXTENSION; let mut cover_filename = String::from("cover"); - cover_filename += constants::file_extensions::JPG_FILE_EXTENSION; + cover_filename += ".jpg"; return reqwest::multipart::Form::new() .part("cover", cover.file_name(cover_filename)) @@ -128,9 +127,9 @@ impl Upload { println!("\n{}\n", song_detail); let mut song_filename = String::from("audio"); - song_filename += constants::file_extensions::WAV_FILE_EXTENSION; + song_filename += icarus_models::constants::WAV_EXTENSION; let mut cover_filename = String::from("cover"); - cover_filename += constants::file_extensions::JPG_FILE_EXTENSION; + cover_filename += ".jpg"; let form = reqwest::multipart::Form::new() .part( From a9f9ba83503bda8ef5513b044b84ee78c9e1e011 Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 13 Mar 2025 20:58:34 -0400 Subject: [PATCH 09/15] Formatting --- src/managers/commit_manager.rs | 2 +- src/models/mod.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index 4857495..2044da2 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -10,9 +10,9 @@ use tokio::runtime::Runtime; use crate::managers; use crate::models::song::Album; use crate::models::{self}; +use crate::parsers; use crate::syncers; use crate::utilities; -use crate::parsers; #[derive(Debug, Deserialize, Serialize)] pub struct CommitManager { diff --git a/src/models/mod.rs b/src/models/mod.rs index bc27880..b386327 100644 --- a/src/models/mod.rs +++ b/src/models/mod.rs @@ -3,4 +3,4 @@ pub mod flags; pub mod icarus_action; pub mod song; pub mod token; -pub mod upload_form; \ No newline at end of file +pub mod upload_form; From e3cd1f4018ddfad67e5791c46ab981f0a3b72c98 Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 13 Mar 2025 21:19:37 -0400 Subject: [PATCH 10/15] Switched to constants from icarus-models: --- src/syncers/upload.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/syncers/upload.rs b/src/syncers/upload.rs index 5281b37..7f64f8d 100644 --- a/src/syncers/upload.rs +++ b/src/syncers/upload.rs @@ -111,7 +111,7 @@ impl Upload { let mut song_filename = String::from("audio"); song_filename += icarus_models::constants::WAV_EXTENSION; let mut cover_filename = String::from("cover"); - cover_filename += ".jpg"; + cover_filename += icarus_models::constants::JPG_EXTENSION; return reqwest::multipart::Form::new() .part("cover", cover.file_name(cover_filename)) @@ -129,7 +129,7 @@ impl Upload { let mut song_filename = String::from("audio"); song_filename += icarus_models::constants::WAV_EXTENSION; let mut cover_filename = String::from("cover"); - cover_filename += ".jpg"; + cover_filename += icarus_models::constants::JPG_EXTENSION; let form = reqwest::multipart::Form::new() .part( From 2f00ce6abf4d291a9b8ec57c0e479e7db911e93b Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 13 Mar 2025 21:26:37 -0400 Subject: [PATCH 11/15] Replaced Token with AccessToken from icarus-models --- src/managers/commit_manager.rs | 4 +-- src/managers/token_manager.rs | 13 ++++++--- src/models/mod.rs | 1 - src/models/token.rs | 47 --------------------------------- src/syncers/delete.rs | 2 +- src/syncers/download.rs | 2 +- src/syncers/retrieve_records.rs | 2 +- src/syncers/upload.rs | 2 +- 8 files changed, 16 insertions(+), 57 deletions(-) delete mode 100644 src/models/token.rs diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index 2044da2..acf719d 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -175,7 +175,7 @@ impl CommitManager { let api = prsr.retrieve_api(); let token = self.parse_token(&api); - println!("Message: {}", token.message.clone().unwrap()); + println!("Message: {}", token.message); let mut dwn_loader = syncers::download::Download { api: api.clone() }; let mut song = models::song::Song::default(); @@ -234,7 +234,7 @@ impl CommitManager { panic!("Not supported"); } - fn parse_token(&self, api: &models::api::API) -> models::token::Token { + fn parse_token(&self, api: &models::api::API) -> icarus_models::token::AccessToken { println!("Fetching token"); let mut usr_mgr: managers::user_manager::UserManager = diff --git a/src/managers/token_manager.rs b/src/managers/token_manager.rs index 240018f..1ecfdfa 100644 --- a/src/managers/token_manager.rs +++ b/src/managers/token_manager.rs @@ -21,14 +21,21 @@ impl Default for TokenManager { } impl TokenManager { - pub async fn request_token(&self) -> Result { + pub async fn request_token(&self) -> Result { println!("Sending request for a token"); let url = self.retrieve_url(); println!("URL: {}", url); - let mut token = models::token::Token::default(); + let mut token = icarus_models::token::AccessToken{ + user_id: -1, + username: String::new(), + token: String::new(), + token_type: String::new(), + expiration: -1, + message: String::new(), + }; let client = reqwest::Client::new(); let response = client.post(&url).json(&self.user).send().await.unwrap(); @@ -36,7 +43,7 @@ impl TokenManager { match response.status() { reqwest::StatusCode::OK => { // on success, parse our JSON to an APIResponse - let s = response.json::().await; + let s = response.json::().await; match s { // Ok(parsed) => { diff --git a/src/models/mod.rs b/src/models/mod.rs index b386327..719772a 100644 --- a/src/models/mod.rs +++ b/src/models/mod.rs @@ -2,5 +2,4 @@ pub mod api; pub mod flags; pub mod icarus_action; pub mod song; -pub mod token; pub mod upload_form; diff --git a/src/models/token.rs b/src/models/token.rs deleted file mode 100644 index e975fa2..0000000 --- a/src/models/token.rs +++ /dev/null @@ -1,47 +0,0 @@ -use std::default::Default; - -use serde::{Deserialize, Serialize}; - -#[derive(Debug, Deserialize, Serialize)] -pub struct Token { - #[serde(alias = "user_id")] - pub user_id: i32, - #[serde(alias = "username")] - pub username: Option, - #[serde(alias = "token")] - pub access_token: Option, - #[serde(alias = "token_type")] - pub token_type: Option, - #[serde(alias = "expiration")] - pub expiration: Option, - #[serde(alias = "message")] - pub message: Option, -} - -impl Default for Token { - fn default() -> Self { - Token { - user_id: -1, - username: None, - access_token: None, - token_type: None, - expiration: None, - message: None, - } - } -} - -impl Token { - pub fn bearer_token(&self) -> String { - let mut token: String = String::from("Bearer "); - - match &self.access_token { - Some(tok) => { - token += tok; - } - None => {} - } - - return token; - } -} diff --git a/src/syncers/delete.rs b/src/syncers/delete.rs index 8ae73f2..0fafe1e 100644 --- a/src/syncers/delete.rs +++ b/src/syncers/delete.rs @@ -20,7 +20,7 @@ impl Default for Delete { impl Delete { pub async fn delete_song( &mut self, - token: &models::token::Token, + token: &icarus_models::token::AccessToken, song: &models::song::Song, ) -> Result { self.api.endpoint = "song/data/delete".to_owned(); diff --git a/src/syncers/download.rs b/src/syncers/download.rs index 39f0c12..d0a008e 100644 --- a/src/syncers/download.rs +++ b/src/syncers/download.rs @@ -23,7 +23,7 @@ pub enum MyError { impl Download { pub async fn download_song( &mut self, - token: &models::token::Token, + token: &icarus_models::token::AccessToken, song: &models::song::Song, ) -> Result { self.api.endpoint = String::from("song/data/download"); diff --git a/src/syncers/retrieve_records.rs b/src/syncers/retrieve_records.rs index b312cb4..cf482e4 100644 --- a/src/syncers/retrieve_records.rs +++ b/src/syncers/retrieve_records.rs @@ -18,7 +18,7 @@ impl Default for RetrieveRecords { impl RetrieveRecords { pub async fn get_all_songs( &mut self, - token: &models::token::Token, + token: &icarus_models::token::AccessToken, ) -> Result, Error> { self.api.endpoint = String::from("song"); let mut songs: Vec = Vec::new(); diff --git a/src/syncers/upload.rs b/src/syncers/upload.rs index 7f64f8d..c4cf978 100644 --- a/src/syncers/upload.rs +++ b/src/syncers/upload.rs @@ -46,7 +46,7 @@ impl Default for Upload { impl Upload { pub async fn upload_song_with_metadata( &mut self, - token: &models::token::Token, + token: &icarus_models::token::AccessToken, song: &models::song::Song, cover: &models::song::CoverArt, album: &models::song::Album, From 8d97d4eb7002acdcf7057c9abb95b5bd89804e3b Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 13 Mar 2025 21:33:22 -0400 Subject: [PATCH 12/15] Updated icarus-models --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index df0de8c..df5aa9c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ serde = { version = "1.0.219", features = ["derive"] } serde_json = "1.0.140" tokio = { version = "1.44.0", features = ["full"] } tokio-util = { version = "0.7.13", features = ["codec"] } -icarus-models = { git = "ssh://git@gitlab.com/kdeng00/icarus-models.git", tag = "v0.1.6" } +icarus-models = { git = "ssh://git@gitlab.com/kdeng00/icarus-models.git", tag = "v0.1.7" } From b69c111b66f7fc15d9a07134288f30f992764291 Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 13 Mar 2025 21:34:11 -0400 Subject: [PATCH 13/15] Formatting --- src/managers/commit_manager.rs | 7 ------- src/managers/token_manager.rs | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index acf719d..1040675 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -244,13 +244,6 @@ impl CommitManager { }; usr_mgr.parse_user_from_actions(); - // let mut new_usr = icarus_models::user::User::default(); - // new_usr.username = usr_mgr.user.username.clone(); - // new_usr.password = usr_mgr.user.password.clone(); - - println!("Username: {}", usr_mgr.user.username); - println!("Other: {}", usr_mgr.user.id); - let usr = usr_mgr.retrieve_user(); let mut tok_mgr = managers::token_manager::TokenManager { user: usr, diff --git a/src/managers/token_manager.rs b/src/managers/token_manager.rs index 1ecfdfa..1bf251a 100644 --- a/src/managers/token_manager.rs +++ b/src/managers/token_manager.rs @@ -28,7 +28,7 @@ impl TokenManager { println!("URL: {}", url); - let mut token = icarus_models::token::AccessToken{ + let mut token = icarus_models::token::AccessToken { user_id: -1, username: String::new(), token: String::new(), From 03ed3deae6df84529d3306b49650883308031f2b Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 13 Mar 2025 21:37:32 -0400 Subject: [PATCH 14/15] Removing code --- src/managers/token_manager.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/managers/token_manager.rs b/src/managers/token_manager.rs index 1bf251a..ef65c81 100644 --- a/src/managers/token_manager.rs +++ b/src/managers/token_manager.rs @@ -73,7 +73,6 @@ impl TokenManager { let api = &self.api; let mut url = String::from(&api.url); url += &String::from(&api.endpoint); - // url += &String::from("/"); return url; } From 8c781398b4b4b5219d96a31f3895a159a5a1db0d Mon Sep 17 00:00:00 2001 From: phoenix Date: Fri, 14 Mar 2025 22:51:17 -0400 Subject: [PATCH 15/15] Wasn't using MyError --- src/managers/commit_manager.rs | 8 ++++++++ src/syncers/download.rs | 16 +++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index 1040675..80e9708 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -193,6 +193,14 @@ impl CommitManager { } Err(er) => { println!("Error {:?}", er); + match er { + syncers::download::MyError::Request(r) => { + println!("Error {:?}", r) + } + syncers::download::MyError::Other(ot) => { + println!("Error {:?}", ot) + } + } } } } diff --git a/src/syncers/download.rs b/src/syncers/download.rs index d0a008e..7f03cc5 100644 --- a/src/syncers/download.rs +++ b/src/syncers/download.rs @@ -16,7 +16,7 @@ impl Default for Download { #[derive(Debug)] pub enum MyError { - _Request(reqwest::Error), + Request(reqwest::Error), Other(String), } @@ -41,12 +41,13 @@ impl Download { .get(&url) .header(reqwest::header::AUTHORIZATION, &access_token) .send() - .await - .unwrap(); + .await; - match response.status() { + match response { + Ok(rep) => { + match rep.status() { reqwest::StatusCode::OK => { - let data = response.text(); + let data = rep.text(); match data.await { Ok(e) => { return Ok(e); @@ -63,6 +64,11 @@ impl Download { panic!("Uh oh! Something unexpected happened: {:?}", other); } } + } + Err(er) => { + return Err(MyError::Request(er)); + } + } return Err(MyError::Other(String::from("Error downloading"))); }