diff --git a/Octokit.Reactive/Clients/IObservableSearchClient.cs b/Octokit.Reactive/Clients/IObservableSearchClient.cs
index 821c1d7f..37a75825 100644
--- a/Octokit.Reactive/Clients/IObservableSearchClient.cs
+++ b/Octokit.Reactive/Clients/IObservableSearchClient.cs
@@ -21,7 +21,7 @@ namespace Octokit.Reactive
///
///
/// List of users
- IObservable SearchUsers(SearchUsersRequest search);
+ IObservable SearchUsers(SearchUsersRequest search);
///
/// search issues
diff --git a/Octokit.Reactive/Clients/ObservableSearchClient.cs b/Octokit.Reactive/Clients/ObservableSearchClient.cs
index c30b757a..220cc48e 100644
--- a/Octokit.Reactive/Clients/ObservableSearchClient.cs
+++ b/Octokit.Reactive/Clients/ObservableSearchClient.cs
@@ -39,10 +39,10 @@ namespace Octokit.Reactive
///
///
/// List of users
- public IObservable SearchUsers(SearchUsersRequest search)
+ public IObservable SearchUsers(SearchUsersRequest search)
{
Ensure.ArgumentNotNull(search, "search");
- return _connection.GetAndFlattenAllPages(ApiUrls.SearchUsers(), search.Parameters);
+ return _client.Search.SearchUsers(search).ToObservable();
}
///
diff --git a/Octokit.Tests.Integration/Clients/SearchClientTests.cs b/Octokit.Tests.Integration/Clients/SearchClientTests.cs
index 8c2640b5..da5204e7 100644
--- a/Octokit.Tests.Integration/Clients/SearchClientTests.cs
+++ b/Octokit.Tests.Integration/Clients/SearchClientTests.cs
@@ -23,4 +23,13 @@ public class SearchClientTests
Assert.NotEmpty(repos.Items);
}
+
+ [Fact]
+ public async Task SearchForGitHub()
+ {
+ var request = new SearchUsersRequest("github");
+ var repos = await _gitHubClient.Search.SearchUsers(request);
+
+ Assert.NotEmpty(repos.Items);
+ }
}
diff --git a/Octokit.Tests/Clients/SearchClientTests.cs b/Octokit.Tests/Clients/SearchClientTests.cs
index 5a18c57b..2aac476c 100644
--- a/Octokit.Tests/Clients/SearchClientTests.cs
+++ b/Octokit.Tests/Clients/SearchClientTests.cs
@@ -30,7 +30,7 @@ namespace Octokit.Tests.Clients
var connection = Substitute.For();
var client = new SearchClient(connection);
client.SearchUsers(new SearchUsersRequest("something"));
- connection.Received().GetAll(Arg.Is(u => u.ToString() == "search/users"), Arg.Any>());
+ connection.Received().Get(Arg.Is(u => u.ToString() == "search/users"), Arg.Any>());
}
[Fact]
@@ -47,7 +47,7 @@ namespace Octokit.Tests.Clients
var client = new SearchClient(connection);
var request = new SearchUsersRequest("github");
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github"));
}
@@ -60,7 +60,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.AccountType = AccountType.User;
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+type:User"));
}
@@ -73,7 +73,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.AccountType = AccountType.Org;
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+type:Org"));
}
@@ -87,7 +87,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.In = new[] { UserInQualifier.Fullname };
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+in:Fullname"));
}
@@ -100,7 +100,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.In = new[] { UserInQualifier.Email };
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+in:Email"));
}
@@ -113,7 +113,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.In = new[] { UserInQualifier.Username };
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+in:Username"));
}
@@ -126,7 +126,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.In = new[] { UserInQualifier.Username, UserInQualifier.Fullname, UserInQualifier.Email };
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+in:Username,Fullname,Email"));
}
@@ -139,7 +139,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.Repositories = Range.GreaterThan(5);
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+repos:>5"));
}
@@ -152,7 +152,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.Repositories = Range.GreaterThanOrEquals(5);
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+repos:>=5"));
}
@@ -165,7 +165,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.Repositories = Range.LessThanOrEquals(5);
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+repos:<=5"));
}
@@ -178,7 +178,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.Repositories = Range.LessThan(5);
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+repos:<5"));
}
@@ -191,7 +191,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.Location = "San Francisco";
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+location:San Francisco"));
}
@@ -205,7 +205,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.Language = Language.Ruby;
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+language:Ruby"));
}
@@ -218,7 +218,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.Created = DateRange.GreaterThan(new DateTime(2014, 1, 1));
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+created:>2014-01-01"));
}
@@ -231,7 +231,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.Created = DateRange.GreaterThanOrEquals(new DateTime(2014, 1, 1));
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+created:>=2014-01-01"));
}
@@ -244,7 +244,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.Created = DateRange.LessThanOrEquals(new DateTime(2014, 1, 1));
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+created:<=2014-01-01"));
}
@@ -257,7 +257,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.Created = DateRange.LessThan(new DateTime(2014, 1, 1));
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+created:<2014-01-01"));
}
@@ -270,7 +270,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.Followers = Range.GreaterThan(1);
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+followers:>1"));
}
@@ -283,7 +283,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.Followers = Range.GreaterThanOrEquals(1);
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+followers:>=1"));
}
@@ -296,7 +296,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.Followers = Range.LessThan(1);
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+followers:<1"));
}
@@ -309,7 +309,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.Followers = Range.LessThanOrEquals(1);
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+followers:<=1"));
}
@@ -322,7 +322,7 @@ namespace Octokit.Tests.Clients
var request = new SearchUsersRequest("github");
request.Followers = new Range(1, 1000);
client.SearchUsers(request);
- connection.Received().GetAll(
+ connection.Received().Get(
Arg.Is(u => u.ToString() == "search/users"),
Arg.Is>(d => d["q"] == "github+followers:1..1000"));
}
diff --git a/Octokit/Clients/ISearchClient.cs b/Octokit/Clients/ISearchClient.cs
index f562d239..8119aa37 100644
--- a/Octokit/Clients/ISearchClient.cs
+++ b/Octokit/Clients/ISearchClient.cs
@@ -4,7 +4,6 @@ using System.Collections.Generic;
using System.Threading.Tasks;
namespace Octokit
{
-
///
/// GitHub Search Api Client
///
@@ -24,7 +23,7 @@ namespace Octokit
///
///
/// List of users
- Task> SearchUsers(SearchUsersRequest search);
+ Task SearchUsers(SearchUsersRequest search);
///
/// search issues
diff --git a/Octokit/Clients/SearchClient.cs b/Octokit/Clients/SearchClient.cs
index c8ee5391..9cfb6041 100644
--- a/Octokit/Clients/SearchClient.cs
+++ b/Octokit/Clients/SearchClient.cs
@@ -37,10 +37,10 @@ namespace Octokit
///
///
/// List of users
- public Task> SearchUsers(SearchUsersRequest search)
+ public Task SearchUsers(SearchUsersRequest search)
{
Ensure.ArgumentNotNull(search, "search");
- return ApiConnection.GetAll(ApiUrls.SearchUsers(), search.Parameters);
+ return ApiConnection.Get(ApiUrls.SearchUsers(), search.Parameters);
}
///
diff --git a/Octokit/Models/Response/SearchUsersResult.cs b/Octokit/Models/Response/SearchUsersResult.cs
new file mode 100644
index 00000000..4e5a4f9c
--- /dev/null
+++ b/Octokit/Models/Response/SearchUsersResult.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Globalization;
+
+namespace Octokit
+{
+ [DebuggerDisplay("{DebuggerDisplay,nq}")]
+ public class SearchUsersResult
+ {
+ public int TotalCount { get; set; }
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
+ public IReadOnlyList Items { get; set; }
+
+ internal string DebuggerDisplay
+ {
+ get
+ {
+ return String.Format(CultureInfo.InvariantCulture, "TotalCount: {0}", TotalCount);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Octokit/Octokit-Mono.csproj b/Octokit/Octokit-Mono.csproj
index 782c2aa3..bb7803d3 100644
--- a/Octokit/Octokit-Mono.csproj
+++ b/Octokit/Octokit-Mono.csproj
@@ -307,6 +307,7 @@
+
\ No newline at end of file
diff --git a/Octokit/Octokit-MonoAndroid.csproj b/Octokit/Octokit-MonoAndroid.csproj
index 64bed0ac..19b956e7 100644
--- a/Octokit/Octokit-MonoAndroid.csproj
+++ b/Octokit/Octokit-MonoAndroid.csproj
@@ -318,6 +318,7 @@
+
\ No newline at end of file
diff --git a/Octokit/Octokit-Monotouch.csproj b/Octokit/Octokit-Monotouch.csproj
index 33815ea8..24c46fcf 100644
--- a/Octokit/Octokit-Monotouch.csproj
+++ b/Octokit/Octokit-Monotouch.csproj
@@ -313,6 +313,7 @@
+
\ No newline at end of file
diff --git a/Octokit/Octokit-netcore45.csproj b/Octokit/Octokit-netcore45.csproj
index 1b037257..f7b3c62e 100644
--- a/Octokit/Octokit-netcore45.csproj
+++ b/Octokit/Octokit-netcore45.csproj
@@ -305,6 +305,7 @@
+
diff --git a/Octokit/Octokit.csproj b/Octokit/Octokit.csproj
index c2dc3fd9..a284967b 100644
--- a/Octokit/Octokit.csproj
+++ b/Octokit/Octokit.csproj
@@ -141,6 +141,7 @@
+