From 82282bb4b0b06c1513e1beb0ff57817fb6223768 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sat, 30 Aug 2025 12:48:55 -0400 Subject: [PATCH 1/5] Changed code to comply with async --- src/managers/commit_manager.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index 1c787b5..e936d94 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -169,9 +169,7 @@ impl CommitManager { println!("Deleting song.."); - let res_fut = del.delete_song(&token, &song); - let result = Runtime::new().unwrap().block_on(res_fut); - match result { + match del.delete_song(&token, &song).await { Ok(o) => { println!("Song (Id {:?}) has been successfully deleted", o.id); } -- 2.47.3 From 35ba5f5a62c9783f5cf8442dce2c70967eb7b203 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sat, 30 Aug 2025 12:58:17 -0400 Subject: [PATCH 2/5] Able to delete song --- src/syncers/delete.rs | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/src/syncers/delete.rs b/src/syncers/delete.rs index 101d19f..0100866 100644 --- a/src/syncers/delete.rs +++ b/src/syncers/delete.rs @@ -10,14 +10,33 @@ pub struct Delete { pub api: models::api::Api, } +mod response { + pub mod delete_song { + #[derive(Debug, serde::Deserialize)] + pub struct SongAndCoverArt { + pub song: icarus_models::song::Song, + pub coverart: icarus_models::coverart::CoverArt + } + + #[derive(Debug, serde::Deserialize)] + pub struct Response { + pub message: String, + pub data: Vec + } + } +} + impl Delete { pub async fn delete_song( &mut self, token: &icarus_models::token::AccessToken, song: &icarus_models::song::Song, ) -> Result { - self.api.endpoint = "song/data/delete".to_owned(); - let url = syncers::common::retrieve_url(&self.api, true, &song.id); + self.api.endpoint = "api/v2/song".to_owned(); + // let url = syncers::common::retrieve_url(&self.api, true, &song.id); + let url = format!("{}{}/{}", self.api.url, self.api.endpoint, song.id); + println!("Url: {url:?}"); + let client = reqwest::Client::builder().build().unwrap(); let access_token = token.bearer_token(); let response = client @@ -31,8 +50,11 @@ impl Delete { reqwest::StatusCode::OK => { println!("Success!"); - match response.json::().await { - Ok(sng) => Ok(sng), + match response.json::().await { + Ok(resp) => { + println!("Response message: {:?}", resp.message); + Ok(resp.data[0].song.clone()) + } Err(er) => Err(std::io::Error::other(er.to_string())), } } -- 2.47.3 From 94495a4c8e308b66cfcf69eb7ebf3150287cd37f Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sat, 30 Aug 2025 12:59:02 -0400 Subject: [PATCH 3/5] Updated readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 064638d..b07bf32 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ icarus-dm retrieve -u spacecadet -p stellar40 -h https://icarus.com -ha https:// ### Deleting Song ```BASH -icarus-dm delete -u spacecadet -p stellar40 -h https://icarus.com -D e8407fc6-edd2-44c1-993f-08dd7324d91a +icarus-dm delete -u spacecadet -p stellar40 -h https://icarus.com -ha https://auth.icarus.com -D e8407fc6-edd2-44c1-993f-08dd7324d91a ``` -- 2.47.3 From befbca4206b8bfe74ecbecf1224ec8c8dc47727a Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sat, 30 Aug 2025 13:03:04 -0400 Subject: [PATCH 4/5] Code formatting and cleanup --- src/managers/commit_manager.rs | 5 ++--- src/syncers/delete.rs | 12 ++++++------ 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index e936d94..71e82b1 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -5,7 +5,6 @@ use std::io::{Result, Write}; use std::str::FromStr; use serde::{Deserialize, Serialize}; -use tokio::runtime::Runtime; use crate::managers; use crate::models::{self}; @@ -170,8 +169,8 @@ impl CommitManager { println!("Deleting song.."); match del.delete_song(&token, &song).await { - Ok(o) => { - println!("Song (Id {:?}) has been successfully deleted", o.id); + Ok((song, _coverart)) => { + println!("Song (Id {:?}) has been successfully deleted", song.id); } Err(er) => { println!("Error {er:?}"); diff --git a/src/syncers/delete.rs b/src/syncers/delete.rs index 0100866..2531f03 100644 --- a/src/syncers/delete.rs +++ b/src/syncers/delete.rs @@ -3,7 +3,6 @@ use std::default::Default; use reqwest; use crate::models; -use crate::syncers; #[derive(Clone, Debug, Default)] pub struct Delete { @@ -15,13 +14,13 @@ mod response { #[derive(Debug, serde::Deserialize)] pub struct SongAndCoverArt { pub song: icarus_models::song::Song, - pub coverart: icarus_models::coverart::CoverArt + pub coverart: icarus_models::coverart::CoverArt, } #[derive(Debug, serde::Deserialize)] pub struct Response { pub message: String, - pub data: Vec + pub data: Vec, } } } @@ -31,9 +30,9 @@ impl Delete { &mut self, token: &icarus_models::token::AccessToken, song: &icarus_models::song::Song, - ) -> Result { + ) -> Result<(icarus_models::song::Song, icarus_models::coverart::CoverArt), std::io::Error> + { self.api.endpoint = "api/v2/song".to_owned(); - // let url = syncers::common::retrieve_url(&self.api, true, &song.id); let url = format!("{}{}/{}", self.api.url, self.api.endpoint, song.id); println!("Url: {url:?}"); @@ -53,7 +52,8 @@ impl Delete { match response.json::().await { Ok(resp) => { println!("Response message: {:?}", resp.message); - Ok(resp.data[0].song.clone()) + let data = &resp.data[0]; + Ok((data.song.clone(), data.coverart.clone())) } Err(er) => Err(std::io::Error::other(er.to_string())), } -- 2.47.3 From 5be75500ba3a34b16c9739bfbb491b652ee3037e Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sat, 30 Aug 2025 13:03:16 -0400 Subject: [PATCH 5/5] Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1befee6..f3df95b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -479,7 +479,7 @@ dependencies = [ [[package]] name = "icarus-dm" -version = "0.6.7" +version = "0.6.8" dependencies = [ "futures", "http", diff --git a/Cargo.toml b/Cargo.toml index 261a223..4a06ac9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "icarus-dm" -version = "0.6.7" +version = "0.6.8" rust-version = "1.88" edition = "2024" -- 2.47.3