diff --git a/src/callers/coverart.rs b/src/callers/coverart.rs index 057187f..5f4ba52 100644 --- a/src/callers/coverart.rs +++ b/src/callers/coverart.rs @@ -34,7 +34,7 @@ pub mod request { #[derive(Debug, serde::Deserialize, serde::Serialize)] pub struct Request { pub song_id: uuid::Uuid, - pub coverart_queue_id: uuid::Uuid + pub coverart_queue_id: uuid::Uuid, } } } @@ -80,7 +80,7 @@ pub mod response { #[derive(Debug, Default, serde::Deserialize, serde::Serialize)] pub struct Response { pub message: String, - pub data: Vec + pub data: Vec, } } } @@ -250,7 +250,11 @@ pub mod db { pub mod cov_db { use sqlx::Row; - pub async fn create(pool: &sqlx::PgPool, coverart: &icarus_models::coverart::CoverArt, song_id: &uuid::Uuid) -> Result { + pub async fn create( + pool: &sqlx::PgPool, + coverart: &icarus_models::coverart::CoverArt, + song_id: &uuid::Uuid, + ) -> Result { let result = sqlx::query( r#" INSERT INTO "coverart" (title, path, song_id) VALUES($1, $2, $3) RETURNING id; @@ -448,8 +452,13 @@ pub mod endpoint { } } - pub async fn create_coverart(axum::Extension(pool): axum::Extension, - axum::Json(payload): axum::Json) -> (axum::http::StatusCode, axum::Json) { + pub async fn create_coverart( + axum::Extension(pool): axum::Extension, + axum::Json(payload): axum::Json, + ) -> ( + axum::http::StatusCode, + axum::Json, + ) { let mut response = super::response::create_coverart::Response::default(); let id = payload.coverart_queue_id; @@ -467,7 +476,8 @@ pub mod endpoint { let filename = format!("{}-coverart.jpeg", &song.filename[..8]); let save_path = dir.join(&filename); let path = String::from(save_path.to_str().unwrap()); - let mut coverart = icarus_models::coverart::init::init_coverart_only_path(path); + let mut coverart = + icarus_models::coverart::init::init_coverart_only_path(path); coverart.title = song.album.clone(); coverart.data = data; diff --git a/src/callers/song.rs b/src/callers/song.rs index 08d97b1..bd0a1e4 100644 --- a/src/callers/song.rs +++ b/src/callers/song.rs @@ -193,19 +193,22 @@ pub mod song_db { } } - pub async fn get_song(pool: &sqlx::PgPool, id: &uuid::Uuid) -> Result { + pub async fn get_song( + pool: &sqlx::PgPool, + id: &uuid::Uuid, + ) -> Result { eprintln!("Fetching song"); let result = sqlx::query( r#" SELECT * FROM "song" WHERE id = $1 - "# - ) - .bind(id) - .fetch_one(pool) - .await - .map_err(|e| { - eprintln!("Error querying data: {:?}", e); - }); + "#, + ) + .bind(id) + .fetch_one(pool) + .await + .map_err(|e| { + eprintln!("Error querying data: {:?}", e); + }); eprintln!("Result {:?}", result); @@ -219,27 +222,75 @@ pub mod song_db { eprintln!("date_created {:?}", date_created_time); Ok(icarus_models::song::Song { - id: row.try_get("id").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), - title: row.try_get("title").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), - artist: row.try_get("artist").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), - album_artist: row.try_get("album_artist").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), - album: row.try_get("album").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), - genre: row.try_get("genre").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), - year: row.try_get("year").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), - track: row.try_get("track").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), - disc: row.try_get("disc").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), - track_count: row.try_get("track_count").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), - disc_count: row.try_get("disc_count").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), - duration: row.try_get("duration").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), - audio_type: row.try_get("audio_type").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), - filename: row.try_get("filename").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), - directory: row.try_get("directory").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), + id: row + .try_get("id") + .map_err(|_e| sqlx::Error::RowNotFound) + .unwrap(), + title: row + .try_get("title") + .map_err(|_e| sqlx::Error::RowNotFound) + .unwrap(), + artist: row + .try_get("artist") + .map_err(|_e| sqlx::Error::RowNotFound) + .unwrap(), + album_artist: row + .try_get("album_artist") + .map_err(|_e| sqlx::Error::RowNotFound) + .unwrap(), + album: row + .try_get("album") + .map_err(|_e| sqlx::Error::RowNotFound) + .unwrap(), + genre: row + .try_get("genre") + .map_err(|_e| sqlx::Error::RowNotFound) + .unwrap(), + year: row + .try_get("year") + .map_err(|_e| sqlx::Error::RowNotFound) + .unwrap(), + track: row + .try_get("track") + .map_err(|_e| sqlx::Error::RowNotFound) + .unwrap(), + disc: row + .try_get("disc") + .map_err(|_e| sqlx::Error::RowNotFound) + .unwrap(), + track_count: row + .try_get("track_count") + .map_err(|_e| sqlx::Error::RowNotFound) + .unwrap(), + disc_count: row + .try_get("disc_count") + .map_err(|_e| sqlx::Error::RowNotFound) + .unwrap(), + duration: row + .try_get("duration") + .map_err(|_e| sqlx::Error::RowNotFound) + .unwrap(), + audio_type: row + .try_get("audio_type") + .map_err(|_e| sqlx::Error::RowNotFound) + .unwrap(), + filename: row + .try_get("filename") + .map_err(|_e| sqlx::Error::RowNotFound) + .unwrap(), + directory: row + .try_get("directory") + .map_err(|_e| sqlx::Error::RowNotFound) + .unwrap(), date_created: date_created_time.to_string(), - user_id: row.try_get("user_id").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), + user_id: row + .try_get("user_id") + .map_err(|_e| sqlx::Error::RowNotFound) + .unwrap(), data: Vec::new(), }) } - Err(_) => Err(sqlx::Error::RowNotFound) + Err(_) => Err(sqlx::Error::RowNotFound), } } } diff --git a/src/main.rs b/src/main.rs index 3b16d9d..bc1e04b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -104,7 +104,7 @@ pub mod init { .route( crate::callers::endpoints::CREATECOVERART, post(crate::callers::coverart::endpoint::create_coverart), - ) + ) } pub async fn app() -> axum::Router { @@ -395,7 +395,10 @@ mod tests { app.clone().oneshot(req).await } - async fn get_queued_coverart(app: &axum::Router, coverart_queue_id: &uuid::Uuid) -> Result { + async fn get_queued_coverart( + app: &axum::Router, + coverart_queue_id: &uuid::Uuid, + ) -> Result { let uri = format!( "{}?id={}", crate::callers::endpoints::QUEUECOVERART, @@ -958,8 +961,7 @@ mod tests { "Should not be empty" ); - match get_queued_coverart(&app, &resp_coverart_id).await - { + match get_queued_coverart(&app, &resp_coverart_id).await { Ok(response) => { let resp = get_resp_data::< crate::callers::coverart::response::fetch_coverart_no_data::Response, @@ -1378,36 +1380,64 @@ mod tests { eprintln!("Song: {:?}", song); - match upload_coverart_queue_req(&app).await { Ok(response) => { - let resp = - get_resp_data::(response) - .await; - assert_eq!(false, resp.data.is_empty(), "Should not be empty"); + let resp = get_resp_data::< + crate::callers::coverart::response::Response, + >( + response + ) + .await; + assert_eq!( + false, + resp.data.is_empty(), + "Should not be empty" + ); let coverart_id = resp.data[0]; - assert_eq!(false, coverart_id.is_nil(), "Should not be empty"); + assert_eq!( + false, + coverart_id.is_nil(), + "Should not be empty" + ); - match coverart_queue_song_queue_link_req(&app, &coverart_id, &song_queue_id) - .await + match coverart_queue_song_queue_link_req( + &app, + &coverart_id, + &song_queue_id, + ) + .await { Ok(response) => { let resp = get_resp_data::< crate::callers::coverart::response::link::Response, >(response) .await; - assert_eq!(false, resp.data.is_empty(), "Should not be empty"); - let resp_coverart_id = resp.data[0].coverart_id; - let resp_song_queue_id = resp.data[0].song_queue_id; + assert_eq!( + false, + resp.data.is_empty(), + "Should not be empty" + ); + let resp_coverart_id = + resp.data[0].coverart_id; + let resp_song_queue_id = + resp.data[0].song_queue_id; - assert_eq!(false, resp_coverart_id.is_nil(), "Should not be empty"); + assert_eq!( + false, + resp_coverart_id.is_nil(), + "Should not be empty" + ); assert_eq!( false, resp_song_queue_id.is_nil(), "Should not be empty" ); - match get_queued_coverart(&app, &resp_coverart_id).await + match get_queued_coverart( + &app, + &resp_coverart_id, + ) + .await { Ok(response) => { let resp = get_resp_data::<