internal ApiClient(IDataProvider dataProvider) { _dataProvider = dataProvider; _tokenUpdateOptions = new TokenUpdateOptions(); _refreshToken = new Token(string.Empty, DateTimeOffset.MaxValue); _accessToken = new Token(string.Empty, DateTimeOffset.MaxValue); }
/// <summary> /// Initializes a new instance of the <see cref="ApiClient"/> class. /// </summary> /// <param name="apiKey"> /// The API key. /// </param> /// <param name="refreshToken"> /// The initial refresh token. /// </param> /// <param name="refreshTokenExpiration"> /// The expiration date of the refresh token. /// </param> /// <param name="tokenUpdateOptions"> /// The options for updating refresh and access tokens. /// </param> public ApiClient(string apiKey, string refreshToken, DateTimeOffset refreshTokenExpiration, TokenUpdateOptions tokenUpdateOptions) { if (string.IsNullOrEmpty(refreshToken)) { throw new ArgumentException("Refresh token is null or empty.", nameof(refreshToken)); } if (DateTimeOffset.Now > refreshTokenExpiration) { throw new ArgumentException("Refresh token is expired.", nameof(refreshTokenExpiration)); } _dataProvider = new WebDataProvider(apiKey); _tokenUpdateOptions = tokenUpdateOptions; _refreshToken = new Token(refreshToken, refreshTokenExpiration); }