using YandexMusic.API.Models.Artist;
using YandexMusic.API.Requests.Artist;
namespace YandexMusic.API;
/// API для работы с исполнителями.
public class YArtistAPI : YCommonAPI
{
public YArtistAPI(YandexMusicApi api) : base(api) { }
public Task GetAsync(string artistId)
=> new YGetArtistBuilder(Api).ExecuteAsync(artistId);
public Task?> GetAsync(IEnumerable artistIds)
=> new YGetArtistsBuilder(Api).ExecuteAsync(artistIds);
public Task GetTracksAsync(string artistId, int page = 0, int pageSize = 20)
=> new YGetArtistTrackBuilder(Api).ExecuteAsync((artistId, page, pageSize));
public async Task GetAllTracksAsync(string artistId)
{
var info = await GetAsync(artistId);
if (info?.Artist?.Counts?.Tracks == null)
return null;
return await GetTracksAsync(artistId, pageSize: info.Artist.Counts.Tracks);
}
}