diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index aebb9c6..2740d1b 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -458,10 +458,19 @@ impl CommitManager { .link_queued_song_to_queued_coverart(token, &queued_song_id, &id) .await { - Ok(_) => { - println!("Queued coverart Id: {id:?}"); - println!("Linked queued song to queued coverart"); - } + Ok(_) => match up + .update_queued_song_status(token, &queued_song_id, "ready") + .await + { + Ok(_) => { + println!("Queued coverart Id: {id:?}"); + println!("Linked queued song to queued coverart"); + println!("Queued status updated"); + } + Err(err) => { + return Err(std::io::Error::other(err.to_string())); + } + }, Err(err) => { return Err(std::io::Error::other(err.to_string())); } diff --git a/src/syncers/upload.rs b/src/syncers/upload.rs index fe2f088..a0b6ea8 100644 --- a/src/syncers/upload.rs +++ b/src/syncers/upload.rs @@ -300,6 +300,38 @@ impl Upload { } } + pub async fn update_queued_song_status( + &self, + token: &icarus_models::token::AccessToken, + queued_song_id: &uuid::Uuid, + status: &str, + ) -> Result<(), reqwest::Error> { + let endpoint = String::from("api/v2/song/queue"); + let url = format!("{}/{endpoint}", self.api.url); + + let mut headers = reqwest::header::HeaderMap::new(); + let (auth, auth_val) = syncers::common::auth_header(token).await; + headers.insert(auth, auth_val); + + let payload = serde_json::json!({ + "id": queued_song_id, + "status": status + }); + + let client = reqwest::Client::builder().build().unwrap(); + + match client + .patch(url) + .headers(headers) + .json(&payload) + .send() + .await + { + Ok(_) => Ok(()), + Err(err) => Err(err), + } + } + fn init_form( &self, song: &icarus_models::song::Song,