Skip to content

Commit

Permalink
Add new overloads to IYandexMusicTrackLoader
Browse files Browse the repository at this point in the history
  • Loading branch information
SKProCH committed Jan 15, 2024
1 parent 1d1ed72 commit 62995c3
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 3 deletions.
46 changes: 45 additions & 1 deletion YandexMusicResolver/Loaders/IYandexMusicTrackLoader.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using YandexMusicResolver.AudioItems;
using YandexMusicResolver.Ids;

namespace YandexMusicResolver.Loaders {
/// <summary>
Expand All @@ -13,12 +15,54 @@ public interface IYandexMusicTrackLoader {
/// <param name="trackId">Target track id</param>
/// <returns>Instance of <see cref="YandexMusicTrack"/></returns>
Task<YandexMusicTrack?> LoadTrack(long trackId);

/// <summary>
/// Load track info
/// </summary>
/// <param name="trackId">Target track id</param>
/// <returns>Instance of <see cref="YandexMusicTrack"/></returns>
Task<YandexMusicTrack?> LoadTrack(Guid trackId);

/// <summary>
/// Load track info
/// </summary>
/// <param name="trackId">Target track id</param>
/// <returns>Instance of <see cref="YandexMusicTrack"/></returns>
Task<YandexMusicTrack?> LoadTrack(YandexId trackId);

/// <summary>
/// Load track info
/// </summary>
/// <param name="trackId">Target track id</param>
/// <returns>Instance of <see cref="YandexMusicTrack"/></returns>
Task<YandexMusicTrack?> LoadTrack(string trackId);

/// <summary>
/// Load track infos
/// </summary>
/// <param name="trackIds">Target track ids</param>
/// <returns>List of instances of <see cref="YandexMusicTrack"/></returns>
Task<IReadOnlyCollection<YandexMusicTrack>> LoadTracks(IEnumerable<long> trackIds);

/// <summary>
/// Load track infos
/// </summary>
/// <param name="trackIds">Target track ids</param>
/// <returns>List of instances of <see cref="YandexMusicTrack"/></returns>
Task<IReadOnlyCollection<YandexMusicTrack>> LoadTracks(IEnumerable<Guid> trackIds);

/// <summary>
/// Load track infos
/// </summary>
/// <param name="trackIds">Target track ids</param>
/// <returns>List of instances of <see cref="YandexMusicTrack"/></returns>
Task<IReadOnlyCollection<YandexMusicTrack>> LoadTracks(IEnumerable<YandexId> trackIds);

/// <summary>
/// Load track infos
/// </summary>
/// <param name="trackIds">Target track ids</param>
/// <returns>List of instances of <see cref="YandexMusicTrack"/></returns>
Task<IReadOnlyCollection<YandexMusicTrack>> LoadTracks(IEnumerable<string> trackIds);
}
}
23 changes: 21 additions & 2 deletions YandexMusicResolver/Loaders/YandexMusicTrackLoader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using System.Threading.Tasks;
using YandexMusicResolver.AudioItems;
using YandexMusicResolver.Config;
using YandexMusicResolver.Ids;
using YandexMusicResolver.Responses;

namespace YandexMusicResolver.Loaders {
Expand Down Expand Up @@ -40,7 +41,16 @@ public static YandexMusicTrackLoader CreateWithHttpClient(IYandexCredentialsProv
}

/// <inheritdoc />
public async Task<YandexMusicTrack?> LoadTrack(long trackId) {
public Task<YandexMusicTrack?> LoadTrack(long trackId) => LoadTrack(trackId.ToString());

/// <inheritdoc />
public Task<YandexMusicTrack?> LoadTrack(Guid trackId) => LoadTrack(trackId.ToString());

/// <inheritdoc />
public Task<YandexMusicTrack?> LoadTrack(YandexId trackId) => LoadTrack(trackId.ToString());

/// <inheritdoc />
public async Task<YandexMusicTrack?> LoadTrack(string trackId) {
try {
var url = TracksInfoFormat + trackId;
var response = await _httpClient.PerformYMusicRequestAsync<List<MetaTrack>>(_credentialsProvider, url);
Expand All @@ -52,7 +62,16 @@ public static YandexMusicTrackLoader CreateWithHttpClient(IYandexCredentialsProv
}

/// <inheritdoc />
public async Task<IReadOnlyCollection<YandexMusicTrack>> LoadTracks(IEnumerable<long> trackIds) {
public Task<IReadOnlyCollection<YandexMusicTrack>> LoadTracks(IEnumerable<long> trackIds) => LoadTracks(trackIds.Select(l => l.ToString()));

/// <inheritdoc />
public Task<IReadOnlyCollection<YandexMusicTrack>> LoadTracks(IEnumerable<Guid> trackIds) => LoadTracks(trackIds.Select(l => l.ToString()));

/// <inheritdoc />
public Task<IReadOnlyCollection<YandexMusicTrack>> LoadTracks(IEnumerable<YandexId> trackIds) => LoadTracks(trackIds.Select(l => l.ToString()));

/// <inheritdoc />
public async Task<IReadOnlyCollection<YandexMusicTrack>> LoadTracks(IEnumerable<string> trackIds) {
try {
var trackIdsString = string.Join(",", trackIds);
var url = TracksInfoFormat + trackIdsString;
Expand Down

0 comments on commit 62995c3

Please sign in to comment.