diff --git a/README.md b/README.md index a311382..be92e93 100644 --- a/README.md +++ b/README.md @@ -115,6 +115,23 @@ String scroll_param_value = users.scroll_param; Users users = usersClient.Scroll(scroll_param_value); ``` +**List users with Pagination using Pages** +```cs +Pages page = new Pages() +{ + page = 1, + per_page = 10, +} +Users users = usersClient.Next(page); +``` + +**List users with Pagination** +```cs +Users users = usersClient.Next(); + +Users users = usersClient.Next(1, 50, OrderBy.Desc, UserSortBy.created_at); +``` + **Delete a user** ```cs usersClient.Archive("100300231"); // with intercom generated user's id diff --git a/src/Intercom.Tests.Integration/Intercom.Tests.Integration.csproj b/src/Intercom.Tests.Integration/Intercom.Tests.Integration.csproj index e602a30..cb26e70 100644 --- a/src/Intercom.Tests.Integration/Intercom.Tests.Integration.csproj +++ b/src/Intercom.Tests.Integration/Intercom.Tests.Integration.csproj @@ -2,7 +2,7 @@ netcoreapp2.0 - 2.0.0 + 2.1.1 diff --git a/src/Intercom.Tests/Clients/UserClientTest.cs b/src/Intercom.Tests/Clients/UserClientTest.cs index a0e2083..1121a44 100755 --- a/src/Intercom.Tests/Clients/UserClientTest.cs +++ b/src/Intercom.Tests/Clients/UserClientTest.cs @@ -19,7 +19,7 @@ public class UserClientTest : TestBase public UserClientTest() { - this.usersClient = new UsersClient(new Authentication(AppId, AppKey)); + usersClient = new UsersClient(new Authentication(AppId, AppKey)); } [Test()] diff --git a/src/Intercom.Tests/Intercom.Tests.csproj b/src/Intercom.Tests/Intercom.Tests.csproj index 1db607a..39a5e77 100644 --- a/src/Intercom.Tests/Intercom.Tests.csproj +++ b/src/Intercom.Tests/Intercom.Tests.csproj @@ -2,7 +2,7 @@ netcoreapp2.0 - 2.0.0 + 2.1.1 diff --git a/src/Intercom/Clients/UsersClient.cs b/src/Intercom/Clients/UsersClient.cs index 6938a8f..81335a1 100644 --- a/src/Intercom/Clients/UsersClient.cs +++ b/src/Intercom/Clients/UsersClient.cs @@ -15,7 +15,6 @@ namespace Intercom.Clients { public class UsersClient : Client { - // TODO: Implement paging private static class UserSortBy { public const String created_at = "created_at"; @@ -166,21 +165,38 @@ public Users List() public Users List(Dictionary parameters) { - ClientResponse result = null; - result = Get(parameters: parameters); - return result.Result; + return ListUsersFromParams(parameters); } - // TODO: Implement paging (by Pages argument) - private Users Next(Pages pages) + public Users Next(Pages pages) { - return null; + Dictionary parameters = new Dictionary(); + + parameters.Add("page", pages.page.ToString()); + parameters.Add("per_page", pages.per_page.ToString()); + parameters.Add("order", OrderBy.Desc.ToString()); + parameters.Add("sort", UserSortBy.created_at.ToString()); + + return ListUsersFromParams(parameters); } - // TODO: Implement paging - private Users Next(int page = 1, int perPage = 50, OrderBy orderBy = OrderBy.Dsc, String sortBy = UserSortBy.created_at) + public Users Next(int page = 1, int perPage = 50, OrderBy orderBy = OrderBy.Desc, String sortBy = UserSortBy.created_at) { - return null; + Dictionary parameters = new Dictionary(); + + parameters.Add("page", page.ToString()); + parameters.Add("per_page", perPage.ToString()); + parameters.Add("order", orderBy.ToString().ToLower()); + parameters.Add("sort", sortBy.ToString()); + + return ListUsersFromParams(parameters); + } + + private Users ListUsersFromParams(Dictionary parameters) + { + ClientResponse result = null; + result = Get(parameters: parameters); + return result.Result; } public Users Scroll(String scrollParam = null) diff --git a/src/Intercom/Enums/OrderBy.cs b/src/Intercom/Enums/OrderBy.cs index 86ee477..9873040 100644 --- a/src/Intercom/Enums/OrderBy.cs +++ b/src/Intercom/Enums/OrderBy.cs @@ -9,6 +9,6 @@ namespace Intercom.Core public enum OrderBy { Asc, - Dsc + Desc } } \ No newline at end of file diff --git a/src/Intercom/Intercom.csproj b/src/Intercom/Intercom.csproj index af547b0..d5d9325 100644 --- a/src/Intercom/Intercom.csproj +++ b/src/Intercom/Intercom.csproj @@ -2,7 +2,7 @@ netstandard2.0 - 2.0.0 + 2.1.1 Intercom.Dotnet.Client https://raw.githubusercontent.com/intercom/intercom-dotnet/master/src/assets/Intercom.png Intercom diff --git a/src/Intercom/intercom.nuspec b/src/Intercom/intercom.nuspec index 7538728..b9cb513 100644 --- a/src/Intercom/intercom.nuspec +++ b/src/Intercom/intercom.nuspec @@ -3,7 +3,7 @@ Intercom.Dotnet.Client Intercom Dotnet Client - 2.0.0 + 2.1.1 Intercom Intercom false