public Task <TraktResponse <ITraktAuthorization> > RefreshAuthorizationAsync(string refreshToken, string clientId, string clientSecret, string redirectUri, CancellationToken cancellationToken = default) { var request = new AuthorizationRefreshRequest { RequestBody = new AuthorizationRefreshRequestBody { ClientId = clientId, ClientSecret = clientSecret, RedirectUri = redirectUri, RefreshToken = refreshToken } }; var requestHandler = new AuthenticationRequestHandler(Client); return(requestHandler.RefreshAuthorizationAsync(request, cancellationToken)); }
public async Task <Pair <bool, TraktResponse <ITraktAuthorization> > > CheckIfAuthorizationIsExpiredOrWasRevokedAsync(bool autoRefresh = false, CancellationToken cancellationToken = default) { if (_client.Authorization.IsExpired) { return(new Pair <bool, TraktResponse <ITraktAuthorization> >(true, new TraktResponse <ITraktAuthorization>())); } bool throwResponseExceptions = true; try { throwResponseExceptions = _client.Configuration.ThrowResponseExceptions; _client.Configuration.ThrowResponseExceptions = true; await _client.Sync.GetLastActivitiesAsync(cancellationToken).ConfigureAwait(false); } catch (TraktAuthorizationException) { if (!autoRefresh) { return(new Pair <bool, TraktResponse <ITraktAuthorization> >(true, new TraktResponse <ITraktAuthorization>())); } var request = new AuthorizationRefreshRequest { RequestBody = new AuthorizationRefreshRequestBody { ClientId = _client.ClientId, ClientSecret = _client.ClientSecret, RefreshToken = _client.Authorization.RefreshToken, RedirectUri = _client.Authentication.RedirectUri } }; TraktResponse <ITraktAuthorization> response = await RefreshAuthorizationAsync(request, cancellationToken).ConfigureAwait(false); return(new Pair <bool, TraktResponse <ITraktAuthorization> >(response.IsSuccess, response)); } finally { _client.Configuration.ThrowResponseExceptions = throwResponseExceptions; } return(new Pair <bool, TraktResponse <ITraktAuthorization> >(false, new TraktResponse <ITraktAuthorization>())); }
public Task <TraktResponse <ITraktAuthorization> > RefreshAuthorizationAsync(AuthorizationRefreshRequest request, CancellationToken cancellationToken = default) => ExecuteAuthorizationRequestAsync(request, true, cancellationToken);