diff --git a/PocketSharp.Examples/PocketSharp.Silverlight/MainPage.xaml.cs b/PocketSharp.Examples/PocketSharp.Silverlight/MainPage.xaml.cs index b924e24..345277b 100644 --- a/PocketSharp.Examples/PocketSharp.Silverlight/MainPage.xaml.cs +++ b/PocketSharp.Examples/PocketSharp.Silverlight/MainPage.xaml.cs @@ -46,7 +46,7 @@ namespace PocketSharp.Silverlight try { - items = await client.Retrieve(); + items = await client.Get(); items.ForEach(item => { diff --git a/PocketSharp.Examples/PocketSharp.WP8/ViewModels/MainViewModel.cs b/PocketSharp.Examples/PocketSharp.WP8/ViewModels/MainViewModel.cs index ae98d38..2a85c00 100644 --- a/PocketSharp.Examples/PocketSharp.WP8/ViewModels/MainViewModel.cs +++ b/PocketSharp.Examples/PocketSharp.WP8/ViewModels/MainViewModel.cs @@ -75,7 +75,7 @@ namespace PocketSharp.WP8.ViewModels try { - items = await client.Retrieve().ConfigureAwait(false); + items = await client.Get().ConfigureAwait(false); items.ForEach(item => { diff --git a/PocketSharp.Examples/PocketSharp.Wpf/MainWindow.xaml.cs b/PocketSharp.Examples/PocketSharp.Wpf/MainWindow.xaml.cs index 7f79cd4..43c0187 100644 --- a/PocketSharp.Examples/PocketSharp.Wpf/MainWindow.xaml.cs +++ b/PocketSharp.Examples/PocketSharp.Wpf/MainWindow.xaml.cs @@ -42,7 +42,7 @@ namespace PocketSharp.Wpf try { - items = await client.Retrieve(); + items = await client.Get(); items.ForEach(item => { diff --git a/PocketSharp.Tests/AddTests.cs b/PocketSharp.Tests/AddTests.cs index e7dc8dd..1153554 100644 --- a/PocketSharp.Tests/AddTests.cs +++ b/PocketSharp.Tests/AddTests.cs @@ -34,7 +34,7 @@ namespace PocketSharp.Tests tweetID: "380051788172632065" ); - List items = await client.Retrieve(); + List items = await client.Get(); PocketItem itemDesired = null; items.ForEach(itm => diff --git a/PocketSharp.Tests/ModifyTagsTests.cs b/PocketSharp.Tests/ModifyTagsTests.cs index e432544..a28429a 100644 --- a/PocketSharp.Tests/ModifyTagsTests.cs +++ b/PocketSharp.Tests/ModifyTagsTests.cs @@ -85,7 +85,7 @@ namespace PocketSharp.Tests private async Task GetItemById(int id, bool archive = false) { - List items = await client.Retrieve(state: archive ? State.archive : State.unread); + List items = await client.Get(state: archive ? State.archive : State.unread); PocketItem itemDesired = null; items.ForEach(itm => diff --git a/PocketSharp.Tests/ModifyTests.cs b/PocketSharp.Tests/ModifyTests.cs index 5e5fd5a..9f105ae 100644 --- a/PocketSharp.Tests/ModifyTests.cs +++ b/PocketSharp.Tests/ModifyTests.cs @@ -77,7 +77,7 @@ namespace PocketSharp.Tests private async Task GetItemById(int id, bool archive = false) { - List items = await client.Retrieve(state: archive ? State.archive : State.unread); + List items = await client.Get(state: archive ? State.archive : State.unread); PocketItem itemDesired = null; items.ForEach(itm => diff --git a/PocketSharp.Tests/RetrieveTests.cs b/PocketSharp.Tests/RetrieveTests.cs index 9789e49..8426686 100644 --- a/PocketSharp.Tests/RetrieveTests.cs +++ b/PocketSharp.Tests/RetrieveTests.cs @@ -14,7 +14,7 @@ namespace PocketSharp.Tests [Fact] public async Task AreItemsRetrieved() { - List items = await client.Retrieve(); + List items = await client.Get(); Assert.True(items.Count > 0); } @@ -23,9 +23,9 @@ namespace PocketSharp.Tests [Fact] public async Task IsItemRetrievedById() { - List items = await client.Retrieve(); + List items = await client.Get(); PocketItem item = items[0]; - PocketItem itemDuplicate = await client.Retrieve(item.ID); + PocketItem itemDuplicate = await client.Get(item.ID); Assert.True(item.ID == itemDuplicate.ID); Assert.True(item.Uri == itemDuplicate.Uri); @@ -35,7 +35,7 @@ namespace PocketSharp.Tests [Fact] public async Task AreFilteredItemsRetrieved() { - List items = await client.RetrieveByFilter(RetrieveFilter.Favorite); + List items = await client.Get(RetrieveFilter.Favorite); Assert.True(items.Count > 0); } @@ -44,7 +44,7 @@ namespace PocketSharp.Tests [Fact] public async Task RetrieveWithMultipleFilters() { - List items = await client.Retrieve( + List items = await client.Get( state: State.unread, tag: "pocket", sort: Sort.title, @@ -59,7 +59,7 @@ namespace PocketSharp.Tests [Fact] public async Task ItemContainsUri() { - List items = await client.Retrieve(count: 1); + List items = await client.Get(count: 1); Assert.True(items.Count == 1); Assert.True(items[0].Uri.ToString().StartsWith("http")); @@ -69,18 +69,18 @@ namespace PocketSharp.Tests [Fact] public async Task InvalidRetrievalReturnsNoResults() { - List items = await client.Retrieve( + List items = await client.Get( favorite: true, search: "xoiu987a#;" ); Assert.False(items.Count > 0); - PocketItem item = await client.Retrieve(99999999); + PocketItem item = await client.Get(99999999); Assert.Null(item); - items = await client.RetrieveByFilter(RetrieveFilter.Video); + items = await client.Get(RetrieveFilter.Video); Assert.False(items.Count > 0); } @@ -105,6 +105,15 @@ namespace PocketSharp.Tests } + [Fact] + public async Task RetrieveTagsReturnsResult() + { + List items = await client.GetTags(); + + Assert.True(items.Count > 0); + } + + [Fact] public async Task SearchByTagsReturnsResult() { diff --git a/PocketSharp/Components/ModifyTags.cs b/PocketSharp/Components/ModifyTags.cs index 0429e21..292f997 100644 --- a/PocketSharp/Components/ModifyTags.cs +++ b/PocketSharp/Components/ModifyTags.cs @@ -1,5 +1,7 @@ using PocketSharp.Models; +using System.Collections.Generic; using System.Threading.Tasks; +using System.Linq; namespace PocketSharp { @@ -8,6 +10,26 @@ namespace PocketSharp /// public partial class PocketClient { + /// + /// Retrieves all available tags. + /// Note: The Pocket API contains no method, which allows to retrieve all tags, so all items are retrieved and the associated tags extracted. + /// + /// + /// + public async Task> GetTags() + { + List items = await Get( + state: State.all + ); + + return items.Where(item => item.Tags != null) + .SelectMany(item => item.Tags) + .GroupBy(item => item.Name) + .Select(item => item.First()) + .ToList(); + } + + /// /// Adds the specified tags to an item. ///