41 lines
903 B
C#
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();
|
|
}
|
|
}
|
|
|
|
|
|
} |