Example #1
0
        internal ApiClient(IDataProvider dataProvider)
        {
            _dataProvider       = dataProvider;
            _tokenUpdateOptions = new TokenUpdateOptions();

            _refreshToken = new Token(string.Empty, DateTimeOffset.MaxValue);
            _accessToken  = new Token(string.Empty, DateTimeOffset.MaxValue);
        }
Example #2
0
        /// <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);
        }