mirror of
https://github.com/zoriya/octokit.net.git
synced 2026-06-06 20:13:40 +00:00
Don't use parameters beyond first page
This commit is contained in:
@@ -9,18 +9,18 @@ namespace Octokit.Reactive.Internal
|
||||
{
|
||||
public static IObservable<T> GetAndFlattenAllPages<T>(this IConnection connection, Uri url, IDictionary<string, string> parameters = null, string accepts = null)
|
||||
{
|
||||
return GetPages(url, nextPageUrl => connection.GetAsync<List<T>>(nextPageUrl, parameters, accepts).ToObservable());
|
||||
return GetPages(url, parameters, (pageUrl, pageParams) => connection.GetAsync<List<T>>(pageUrl, pageParams, accepts).ToObservable());
|
||||
}
|
||||
|
||||
static IObservable<T> GetPages<T>(Uri uri,
|
||||
Func<Uri, IObservable<IResponse<List<T>>>> getPageFunc)
|
||||
static IObservable<T> GetPages<T>(Uri uri, IDictionary<string, string> parameters,
|
||||
Func<Uri, IDictionary<string, string>, IObservable<IResponse<List<T>>>> getPageFunc)
|
||||
{
|
||||
return getPageFunc(uri).Expand(resp =>
|
||||
return getPageFunc(uri, parameters).Expand(resp =>
|
||||
{
|
||||
var nextPageUrl = resp.ApiInfo.GetNextPageUrl();
|
||||
return nextPageUrl == null
|
||||
? Observable.Empty<IResponse<List<T>>>()
|
||||
: Observable.Defer(() => getPageFunc(nextPageUrl));
|
||||
: Observable.Defer(() => getPageFunc(nextPageUrl, null));
|
||||
})
|
||||
.Where(resp => resp != null)
|
||||
.SelectMany(resp => resp.BodyAsObject);
|
||||
|
||||
Reference in New Issue
Block a user