Files
YandexMusic/YandexMusic.API/Common/AuthStorage.cs
2026-04-11 15:41:24 +03:00

80 lines
1.9 KiB
C#

using System.Net;
using YandexMusic.API.Common.Providers;
using YandexMusic.API.Models.Account;
using YandexMusic.API.Requests.Common;
namespace YandexMusic.API.Common;
/// <summary>
/// Хранилище данных пользователя
/// </summary>
public class AuthStorage
{
/// <summary>
/// Http-контекст
/// </summary>
public HttpContext Context { get; }
/// <summary>
/// Флаг авторизации
/// </summary>
public bool IsAuthorized { get; internal set; }
/// <summary>
/// Идентификатор устройства
/// </summary>
public string DeviceId { get; set; } = "csharp";
/// <summary>
/// Токен авторизации
/// </summary>
public string Token { get; internal set; }
/// <summary>
/// Аккаунт
/// </summary>
public YAccount User { get; set; }
/// <summary>
/// Провайдер запросов
/// </summary>
public IRequestProvider Provider { get; }
/// <summary>
/// Токен доступа
/// </summary>
public YAccessToken AccessToken { get; set; }
internal YAuthToken AuthToken { get; set; }
/// <summary>
/// Конструктор
/// </summary>
public AuthStorage(IRequestProvider provider)
{
User = new YAccount();
Context = new HttpContext();
Provider = provider;
}
/// <summary>
/// Конструктор
/// </summary>
public AuthStorage()
{
User = new YAccount();
Context = new HttpContext();
Provider = new DefaultRequestProvider(this);
}
/// <summary>
/// Установка прокси для пользователия
/// </summary>
/// <param name="proxy">Прокси</param>
public void SetProxy(IWebProxy proxy)
{
Context.WebProxy = proxy;
}
}