Skip to content

Commit fe1518d

Browse files
authored
Merge pull request #244 from kdjinn/issue/243
add maxPages to catalog search parameters
2 parents ef7961d + 39a4b57 commit fe1518d

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

Source/FikaAmazonAPI/Parameter/CatalogItems/ParameterSearchCatalogItems202204.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace FikaAmazonAPI.Parameter.CatalogItems
66
{
7-
public class ParameterSearchCatalogItems202204 : ParameterBased
7+
public class ParameterSearchCatalogItems202204 : PaginationParameter
88
{
99
public IList<string> identifiers { get; set; }
1010
public IList<string> marketplaceIds { get; set; } = new List<string>();
@@ -16,7 +16,6 @@ public class ParameterSearchCatalogItems202204 : ParameterBased
1616
public IList<string> brandNames { get; set; } = new List<string>();
1717
public IList<string> classificationIds { get; set; } = new List<string>();
1818
public string pageToken { get; set; }
19-
public string keywordsLocale { get; set; }
20-
public int? pageSize { get; set; } = 20;
19+
public string keywordsLocale { get; set; }
2120
}
2221
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using FikaAmazonAPI.AmazonSpApiSDK.Models.Token;
2+
using FikaAmazonAPI.Search;
3+
4+
namespace FikaAmazonAPI.Parameter
5+
{
6+
public class PaginationParameter : ParameterBased
7+
{
8+
public int? pageSize { get; set; } = 20;
9+
[IgnoreToAddParameterAttribute]
10+
public int? maxPages { get; set; } = 20;
11+
}
12+
}

Source/FikaAmazonAPI/Services/CatalogItemService.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,15 +164,17 @@ public AmazonSpApiSDK.Models.CatalogItems.V20220401.Item GetCatalogItem202204(Pa
164164
await CreateAuthorizedRequestAsync(CategoryApiUrls.SearchCatalogItems202204, RestSharp.Method.GET, param);
165165
var response = await ExecuteRequestAsync<ItemSearchResults>(RateLimitType.CatalogItems20220401_SearchCatalogItems);
166166
list.AddRange(response.Items);
167+
var totalPages = 1;
167168
if (response.Pagination != null && !string.IsNullOrEmpty(response.Pagination.NextToken))
168169
{
169170
var nextToken = response.Pagination.NextToken;
170-
while (!string.IsNullOrEmpty(nextToken))
171+
while (!string.IsNullOrEmpty(nextToken) && (!parameter.maxPages.HasValue || totalPages < parameter.maxPages.Value))
171172
{
172173
parameter.pageToken = nextToken;
173174
var getItemNextPage = await SearchCatalogItemsByNextToken202204Async(parameter);
174175
list.AddRange(getItemNextPage.Items);
175176
nextToken = getItemNextPage.Pagination?.NextToken;
177+
totalPages++;
176178
}
177179
}
178180
return list;

0 commit comments

Comments
 (0)