diff --git a/src/parser/mod.rs b/src/parser/mod.rs index 3084d04..4c9b513 100644 --- a/src/parser/mod.rs +++ b/src/parser/mod.rs @@ -141,12 +141,8 @@ pub async fn prep_song( Ok(response) => { let bod = &response.data[0]; match process_coverart(app, &queued_song.id, bod).await { - Ok(qc) => { - Ok((queued_song, qc, bod.metadata.clone())) - } - Err(err) => { - Err(err) - } + Ok(qc) => Ok((queued_song, qc, bod.metadata.clone())), + Err(err) => Err(err), } } Err(err) => Err(err), @@ -165,72 +161,86 @@ pub async fn prep_song( pub async fn process_coverart( app: &crate::config::App, queued_song_id: &uuid::Uuid, - queued_item: &crate::api::get_metadata_queue::response::QueueItem - ) -> Result< - crate::queued_item::QueuedCoverArt - , reqwest::Error> { + queued_item: &crate::api::get_metadata_queue::response::QueueItem, +) -> Result { + let id = queued_item.id; + let created_at = queued_item.created_at; + let metadata = &queued_item.metadata; + println!("Id: {id:?}"); + println!("Metadata: {metadata:?}"); + println!("Created at: {created_at:?}"); - let id = queued_item.id; - let created_at = queued_item.created_at; - let metadata = &queued_item.metadata; - println!("Id: {id:?}"); - println!("Metadata: {metadata:?}"); - println!("Created at: {created_at:?}"); + println!("Getting coverart queue"); + match crate::api::get_coverart_queue::get(app, queued_song_id).await { + Ok(response) => { + match response + .json::() + .await + { + Ok(response) => { + let coverart_queue = &response.data[0]; + let coverart_queue_id = coverart_queue.id; + println!("Coverart queue Id: {coverart_queue_id:?}"); - println!("Getting coverart queue"); - match crate::api::get_coverart_queue::get(app, queued_song_id).await { - Ok(response) => { - match response.json::().await { - Ok(response) => { - let coverart_queue = &response.data[0]; - let coverart_queue_id = coverart_queue.id; - println!("Coverart queue Id: {coverart_queue_id:?}"); + match crate::api::get_coverart_queue::get_data(app, &coverart_queue_id).await { + Ok(response) => { + match crate::api::parsing::parse_response_into_bytes(response).await { + Ok(coverart_queue_bytes) => { + let queued_coverart = init_queued_coverart( + &coverart_queue_id, + &coverart_queue.file_type, + coverart_queue_bytes, + ) + .await; + println!( + "Saved coverart queue file at: {:?}", + queued_coverart.path + ); - match crate::api::get_coverart_queue::get_data(app, &coverart_queue_id).await { - Ok(response) => match crate::api::parsing::parse_response_into_bytes(response).await { - Ok(coverart_queue_bytes) => { - let queued_coverart = init_queued_coverart(&coverart_queue_id, &coverart_queue.file_type, coverart_queue_bytes).await; - println!("Saved coverart queue file at: {:?}", queued_coverart.path); - - Ok(queued_coverart) - } - Err(err) => Err(err) - } - Err(err) => Err(err) - } - } - Err(err) => Err(err) - } - } - Err(err) => Err(err), - } + Ok(queued_coverart) + } + Err(err) => Err(err), + } + } + Err(err) => Err(err), + } + } + Err(err) => Err(err), + } + } + Err(err) => Err(err), + } } -async fn init_queued_coverart(coverart_queue_id: &uuid::Uuid, file_type: &str, bytes: Vec) -> crate::queued_item::QueuedCoverArt { - // TODO: Consider separating song and coverart when saving to the filesystem - let covart_type = if file_type == "png" { - icarus_models::types::CoverArtTypes::PngExtension - } else if file_type == "jpeg" { - icarus_models::types::CoverArtTypes::JpegExtension - } else { - // TODO: This doesn't seem right - icarus_models::types::CoverArtTypes::JpgExtension - }; - let coverart = icarus_models::coverart::CoverArt { - directory: icarus_envy::environment::get_root_directory().await.value, - filename: icarus_models::coverart::generate_filename(covart_type, true), - data: bytes, - ..Default::default() - }; - coverart.save_to_filesystem().unwrap(); - let coverart_queue_fs_path = coverart.get_path().unwrap(); - let queued_coverart = crate::queued_item::QueuedCoverArt { - id: *coverart_queue_id, - coverart, - path: coverart_queue_fs_path - }; +async fn init_queued_coverart( + coverart_queue_id: &uuid::Uuid, + file_type: &str, + bytes: Vec, +) -> crate::queued_item::QueuedCoverArt { + // TODO: Consider separating song and coverart when saving to the filesystem + let covart_type = if file_type == "png" { + icarus_models::types::CoverArtTypes::PngExtension + } else if file_type == "jpeg" { + icarus_models::types::CoverArtTypes::JpegExtension + } else { + // TODO: This doesn't seem right + icarus_models::types::CoverArtTypes::JpgExtension + }; + let coverart = icarus_models::coverart::CoverArt { + directory: icarus_envy::environment::get_root_directory().await.value, + filename: icarus_models::coverart::generate_filename(covart_type, true), + data: bytes, + ..Default::default() + }; + coverart.save_to_filesystem().unwrap(); + let coverart_queue_fs_path = coverart.get_path().unwrap(); + let queued_coverart = crate::queued_item::QueuedCoverArt { + id: *coverart_queue_id, + coverart, + path: coverart_queue_fs_path, + }; - queued_coverart + queued_coverart } pub async fn cleanup(