From 35ba5f5a62c9783f5cf8442dce2c70967eb7b203 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sat, 30 Aug 2025 12:58:17 -0400 Subject: [PATCH] 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())), } }