public GetGalleryTopicItemsAsync ( string topicId, CustomGallerySortOrder sort = CustomGallerySortOrder.Viral, TimeWindow window = TimeWindow.Week, int page = null ) : Task |
||
topicId | string | /// The ID or URL-formatted name of the topic. If using a topic's name, replace its spaces with /// underscores (Mother's_Day). /// |
sort | CustomGallerySortOrder | The order that the gallery should be sorted by. Default: Viral |
window | TimeWindow | The time period that should be used in filtering requests. Default: Week |
page | int | The data paging number. Default: null |
return | Task |
public async Task<IEnumerable<IGalleryItem>> GetGalleryTopicItemsAsync(string topicId,
CustomGallerySortOrder? sort = CustomGallerySortOrder.Viral, TimeWindow? window = TimeWindow.Week,
int? page = null)
{
if (string.IsNullOrWhiteSpace(topicId))
throw new ArgumentNullException(nameof(topicId));
sort = sort ?? CustomGallerySortOrder.Viral;
window = window ?? TimeWindow.Week;
var sortValue = $"{sort}".ToLower();
var windowValue = $"{window}".ToLower();
var url = $"topics/{topicId.Replace(" ", "_")}/{sortValue}/{windowValue}/{page}";
using (var request = RequestBuilder.CreateRequest(HttpMethod.Get, url))
{
var items = await SendRequestAsync<IEnumerable<GalleryItem>>(request).ConfigureAwait(false);
return items;
}
}
}
public async Task GetGalleryTopicItemsAsync_True() { var mockUrl = "https://api.imgur.com/3/topics/Current_Events/top/day/3"; var mockResponse = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(MockTopicEndpointResponses.GetGalleryTopicItems) }; var client = new ImgurClient("123", "1234"); var endpoint = new TopicEndpoint(client, new HttpClient(new MockHttpMessageHandler(mockUrl, mockResponse))); var items = await endpoint.GetGalleryTopicItemsAsync("Current Events", CustomGallerySortOrder.Top, TimeWindow.Day, 3) .ConfigureAwait(false); Assert.True(items.Any()); }