am-api 1.1.0

A library for interfacing with the Apple Music API
Documentation
use am_api::error::Error;
use am_api::resource::search::catalog::{CatalogSearch, CatalogSearchType};
use futures::{pin_mut, StreamExt};

mod common;

#[tokio::test]
async fn search_catalog() -> Result<(), Error> {
    let client = common::create_client();

    let results = CatalogSearch::search()
        .search(&client, &[CatalogSearchType::Albums], "Unrequited Love")
        .await?;

    let albums = results.albums.iter(&client);
    pin_mut!(albums);

    while let Some(album) = albums.next().await {
        let album = album?;
        let attributes = album
            .attributes
            .expect("search returned an album without attributes");

        if attributes.artist_name == "hkmori" {
            return Ok(());
        }
    }

    panic!("expected album not found");
}