From 35736ee1d5a52b44609d83eb7621216d80dc0b3f Mon Sep 17 00:00:00 2001 From: Antoine Gersant Date: Tue, 30 Jul 2024 23:17:41 -0700 Subject: [PATCH] v7 compat for random/recent endpoints --- src/server/dto/v7.rs | 20 +++++++++++++------- src/server/test/admin.rs | 8 ++++++-- src/server/test/collection.rs | 18 ++++++++++++++---- 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/src/server/dto/v7.rs b/src/server/dto/v7.rs index be6538d..1d9bdc0 100644 --- a/src/server/dto/v7.rs +++ b/src/server/dto/v7.rs @@ -317,16 +317,22 @@ impl From for Directory { } impl From for Directory { - fn from(a: collection::Album) -> Self { + fn from(album: collection::Album) -> Self { + let path = album + .songs + .first() + .map(|s| s.virtual_parent.clone()) + .unwrap_or_default(); + Self { - path: todo!(), // TODO implement - artist: match a.artists.is_empty() { + path, + artist: match album.artists.is_empty() { true => None, - false => Some(a.artists.join("")), + false => Some(album.artists.join("")), }, - year: a.year, - album: a.name, - artwork: a.artwork, + year: album.year, + album: album.name, + artwork: album.artwork, } } } diff --git a/src/server/test/admin.rs b/src/server/test/admin.rs index ba5d633..43bbb10 100644 --- a/src/server/test/admin.rs +++ b/src/server/test/admin.rs @@ -50,13 +50,17 @@ async fn trigger_index_golden_path() { let request = protocol::random::(); - let response = service.fetch_json::<_, Vec>(&request).await; + let response = service + .fetch_json::<_, Vec>(&request) + .await; let entries = response.body(); assert_eq!(entries.len(), 0); service.index().await; - let response = service.fetch_json::<_, Vec>(&request).await; + let response = service + .fetch_json::<_, Vec>(&request) + .await; let entries = response.body(); assert_eq!(entries.len(), 3); } diff --git a/src/server/test/collection.rs b/src/server/test/collection.rs index 6261aa0..eae8444 100644 --- a/src/server/test/collection.rs +++ b/src/server/test/collection.rs @@ -168,7 +168,9 @@ async fn random_golden_path() { service.login().await; let request = protocol::random::(); - let response = service.fetch_json::<_, Vec>(&request).await; + let response = service + .fetch_json::<_, Vec>(&request) + .await; assert_eq!(response.status(), StatusCode::OK); let entries = response.body(); assert_eq!(entries.len(), 3); @@ -184,7 +186,9 @@ async fn random_with_trailing_slash() { let mut request = protocol::random::(); add_trailing_slash(&mut request); - let response = service.fetch_json::<_, Vec>(&request).await; + let response = service + .fetch_json::<_, Vec>(&request) + .await; assert_eq!(response.status(), StatusCode::OK); let entries = response.body(); assert_eq!(entries.len(), 3); @@ -205,6 +209,7 @@ async fn random_golden_path_api_v7() { assert_eq!(response.status(), StatusCode::OK); let entries = response.body(); assert_eq!(entries.len(), 3); + assert!(entries[0].path.starts_with("collection/")); } #[tokio::test] @@ -224,7 +229,9 @@ async fn recent_golden_path() { service.login().await; let request = protocol::recent::(); - let response = service.fetch_json::<_, Vec>(&request).await; + let response = service + .fetch_json::<_, Vec>(&request) + .await; assert_eq!(response.status(), StatusCode::OK); let entries = response.body(); assert_eq!(entries.len(), 3); @@ -240,7 +247,9 @@ async fn recent_with_trailing_slash() { let mut request = protocol::recent::(); add_trailing_slash(&mut request); - let response = service.fetch_json::<_, Vec>(&request).await; + let response = service + .fetch_json::<_, Vec>(&request) + .await; assert_eq!(response.status(), StatusCode::OK); let entries = response.body(); assert_eq!(entries.len(), 3); @@ -261,6 +270,7 @@ async fn recent_golden_path_api_v7() { assert_eq!(response.status(), StatusCode::OK); let entries = response.body(); assert_eq!(entries.len(), 3); + assert!(entries[0].path.starts_with("collection/")); } #[tokio::test]