v7 compat for random/recent endpoints

This commit is contained in:
Antoine Gersant 2024-07-30 23:17:41 -07:00
parent 332e39876e
commit 35736ee1d5
3 changed files with 33 additions and 13 deletions

View file

@ -317,16 +317,22 @@ impl From<collection::Directory> for Directory {
} }
impl From<collection::Album> for Directory { impl From<collection::Album> 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 { Self {
path: todo!(), // TODO implement path,
artist: match a.artists.is_empty() { artist: match album.artists.is_empty() {
true => None, true => None,
false => Some(a.artists.join("")), false => Some(album.artists.join("")),
}, },
year: a.year, year: album.year,
album: a.name, album: album.name,
artwork: a.artwork, artwork: album.artwork,
} }
} }
} }

View file

@ -50,13 +50,17 @@ async fn trigger_index_golden_path() {
let request = protocol::random::<V8>(); let request = protocol::random::<V8>();
let response = service.fetch_json::<_, Vec<dto::Album>>(&request).await; let response = service
.fetch_json::<_, Vec<dto::AlbumHeader>>(&request)
.await;
let entries = response.body(); let entries = response.body();
assert_eq!(entries.len(), 0); assert_eq!(entries.len(), 0);
service.index().await; service.index().await;
let response = service.fetch_json::<_, Vec<dto::Album>>(&request).await; let response = service
.fetch_json::<_, Vec<dto::AlbumHeader>>(&request)
.await;
let entries = response.body(); let entries = response.body();
assert_eq!(entries.len(), 3); assert_eq!(entries.len(), 3);
} }

View file

@ -168,7 +168,9 @@ async fn random_golden_path() {
service.login().await; service.login().await;
let request = protocol::random::<V8>(); let request = protocol::random::<V8>();
let response = service.fetch_json::<_, Vec<dto::Album>>(&request).await; let response = service
.fetch_json::<_, Vec<dto::AlbumHeader>>(&request)
.await;
assert_eq!(response.status(), StatusCode::OK); assert_eq!(response.status(), StatusCode::OK);
let entries = response.body(); let entries = response.body();
assert_eq!(entries.len(), 3); assert_eq!(entries.len(), 3);
@ -184,7 +186,9 @@ async fn random_with_trailing_slash() {
let mut request = protocol::random::<V8>(); let mut request = protocol::random::<V8>();
add_trailing_slash(&mut request); add_trailing_slash(&mut request);
let response = service.fetch_json::<_, Vec<dto::Album>>(&request).await; let response = service
.fetch_json::<_, Vec<dto::AlbumHeader>>(&request)
.await;
assert_eq!(response.status(), StatusCode::OK); assert_eq!(response.status(), StatusCode::OK);
let entries = response.body(); let entries = response.body();
assert_eq!(entries.len(), 3); assert_eq!(entries.len(), 3);
@ -205,6 +209,7 @@ async fn random_golden_path_api_v7() {
assert_eq!(response.status(), StatusCode::OK); assert_eq!(response.status(), StatusCode::OK);
let entries = response.body(); let entries = response.body();
assert_eq!(entries.len(), 3); assert_eq!(entries.len(), 3);
assert!(entries[0].path.starts_with("collection/"));
} }
#[tokio::test] #[tokio::test]
@ -224,7 +229,9 @@ async fn recent_golden_path() {
service.login().await; service.login().await;
let request = protocol::recent::<V8>(); let request = protocol::recent::<V8>();
let response = service.fetch_json::<_, Vec<dto::Album>>(&request).await; let response = service
.fetch_json::<_, Vec<dto::AlbumHeader>>(&request)
.await;
assert_eq!(response.status(), StatusCode::OK); assert_eq!(response.status(), StatusCode::OK);
let entries = response.body(); let entries = response.body();
assert_eq!(entries.len(), 3); assert_eq!(entries.len(), 3);
@ -240,7 +247,9 @@ async fn recent_with_trailing_slash() {
let mut request = protocol::recent::<V8>(); let mut request = protocol::recent::<V8>();
add_trailing_slash(&mut request); add_trailing_slash(&mut request);
let response = service.fetch_json::<_, Vec<dto::Album>>(&request).await; let response = service
.fetch_json::<_, Vec<dto::AlbumHeader>>(&request)
.await;
assert_eq!(response.status(), StatusCode::OK); assert_eq!(response.status(), StatusCode::OK);
let entries = response.body(); let entries = response.body();
assert_eq!(entries.len(), 3); assert_eq!(entries.len(), 3);
@ -261,6 +270,7 @@ async fn recent_golden_path_api_v7() {
assert_eq!(response.status(), StatusCode::OK); assert_eq!(response.status(), StatusCode::OK);
let entries = response.body(); let entries = response.body();
assert_eq!(entries.len(), 3); assert_eq!(entries.len(), 3);
assert!(entries[0].path.starts_with("collection/"));
} }
#[tokio::test] #[tokio::test]