/// <summary>
        /// Thrown when and error is received attempting to retrieve a token.
        /// </summary>
        /// <param name="tokenSet"></param>
        /// <param name="response"></param>
        /// <param name="statusCode"></param>
        /// <param name="receivedAt"></param>
        public RefreshTokenErrorResponseException(TokenSet tokenSet, JObject response, HttpStatusCode statusCode, Instant receivedAt)
            : base(CreateDefaultMessage(tokenSet, statusCode, response))
        {
            TokenSet   = tokenSet;
            StatusCode = statusCode;
            ReceivedAt = receivedAt;

            if (!(response is null))
            {
                Response               = response;
                RemoteError            = response.Value <string>("error");
                RemoteErrorDescription = response.Value <string>("error_description");
                RemoteErrorUri         = response.Value <string>("error_uri");
            }
        }
Beispiel #2
0
        public TokenSetQuery(TokenSet fromTokenSet)
        {
            if (fromTokenSet is null)
            {
                throw new ArgumentNullException(nameof(fromTokenSet));
            }
            if (string.IsNullOrEmpty(fromTokenSet.UserId))
            {
                throw new ArgumentException($"The value for {nameof(TokenSet.UserId)} must be supplied", nameof(fromTokenSet));
            }
            if (string.IsNullOrEmpty(fromTokenSet.OrgKey))
            {
                throw new ArgumentException($"The value for {nameof(TokenSet.OrgKey)} must be supplied", nameof(fromTokenSet));
            }

            UserId = fromTokenSet.UserId;
            OrgKey = fromTokenSet.OrgKey;
        }
        private static string CreateDefaultMessage(TokenSet tokenSet, HttpStatusCode httpStatusCode, JObject response)
        {
            var friendlyStatusCode = $"{(int)httpStatusCode} {httpStatusCode.ToString()}";

            if (response is null)
            {
                return($"Actionstep returned an error status code '{friendlyStatusCode}' when attempting to refresh the tokenSet with id '{tokenSet?.Id}'. The response was empty.");
            }
            else
            {
                var remoteError            = response.Value <string>("error") ?? "null";
                var remoteErrorDescription = response.Value <string>("error_description") ?? "null";
                var remoteErrorUri         = response.Value <string>("error_uri") ?? "null";

                return($"Actionstep returned an error status code '{friendlyStatusCode}' when attempting to refresh a tokenSet." +
                       $" TokenSet ID: '{tokenSet?.Id}'." +
                       $", User ID : '{tokenSet?.UserId}'." +
                       $", OrgKey : '{tokenSet?.OrgKey}'." +
                       $", Remote error:'{remoteError}'" +
                       $", error_description: '{remoteErrorDescription}'" +
                       $", and error_uri: '{remoteErrorUri}'");
            }
        }