Files
YandexMusic/YandexMusic.API/Requests/Common/YRequest.cs
2026-04-14 02:47:05 +03:00

41 lines
903 B
C#

using YandexMusic.API.Common;
using YandexMusic.API.Common.Providers;
namespace YandexMusic.API.Requests.Common;
internal class YRequest<T>
{
private HttpRequestMessage msg;
private IRequestProvider provider;
protected YandexMusicApi api;
public YRequest(HttpRequestMessage message, YandexMusicApi yandex, AuthStorage auth)
{
msg = message;
api = yandex;
provider = auth.Provider;
}
public async Task<T> GetResponseAsync()
{
if (msg == null)
return default;
HttpResponseMessage response = await provider.GetWebResponseAsync(msg);
if (typeof(T) == typeof(HttpResponseMessage))
return (T)(object)response;
try
{
return await provider.GetDataFromResponseAsync<T>(api, response);
}
finally
{
response.Dispose();
}
}
}