Skip to content

Commit e50f0f6

Browse files
algolia-botFluf22
andcommitted
fix(clients): update browse iterator (#4058) (generated) [skip ci]
Co-authored-by: Thomas Raffray <[email protected]>
1 parent 6254217 commit e50f0f6

File tree

6 files changed

+28
-15
lines changed

6 files changed

+28
-15
lines changed

clients/algoliasearch-client-go/algolia/search/api_search.go

+6-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

clients/algoliasearch-client-java/algoliasearch/src/main/java/com/algolia/api/SearchClient.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -6126,6 +6126,10 @@ public GetApiKeyResponse waitForApiKey(String key, ApiKeyOperation operation) {
61266126
public <T> Iterable<T> browseObjects(String indexName, BrowseParamsObject params, Class<T> innerType, RequestOptions requestOptions) {
61276127
final Holder<String> currentCursor = new Holder<>();
61286128

6129+
if (params.getHitsPerPage() == null) {
6130+
params.setHitsPerPage(1000);
6131+
}
6132+
61296133
return AlgoliaIterableHelper.createIterable(
61306134
() -> {
61316135
BrowseResponse<T> response = this.browse(indexName, params, innerType, requestOptions);
@@ -6175,7 +6179,7 @@ public Iterable<SynonymHit> browseSynonyms(String indexName, SearchSynonymsParam
61756179
return AlgoliaIterableHelper.createIterable(
61766180
() -> {
61776181
SearchSynonymsResponse response = this.searchSynonyms(indexName, params, requestOptions);
6178-
currentPage.value = response.getNbHits() < params.getHitsPerPage() ? null : currentPage.value + 1;
6182+
currentPage.value = response.getHits().size() < params.getHitsPerPage() ? null : currentPage.value + 1;
61796183
return response.getHits().iterator();
61806184
},
61816185
() -> currentPage.value != null
@@ -6217,7 +6221,7 @@ public Iterable<Rule> browseRules(String indexName, SearchRulesParams params, Re
62176221
return AlgoliaIterableHelper.createIterable(
62186222
() -> {
62196223
SearchRulesResponse response = this.searchRules(indexName, params.setPage(currentPage.value), requestOptions);
6220-
currentPage.value = response.getNbHits() < hitsPerPage ? null : currentPage.value + 1;
6224+
currentPage.value = response.getHits().size() < hitsPerPage ? null : currentPage.value + 1;
62216225
return response.getHits().iterator();
62226226
},
62236227
() -> currentPage.value != null

clients/algoliasearch-client-javascript/packages/client-search/src/searchClient.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,7 @@ export function createSearchClient({
412412
indexName,
413413
browseParams: {
414414
cursor: previousResponse ? previousResponse.cursor : undefined,
415+
hitsPerPage: 1000,
415416
...browseParams,
416417
},
417418
},
@@ -456,7 +457,7 @@ export function createSearchClient({
456457
requestOptions,
457458
);
458459
},
459-
validate: (response) => response.nbHits < params.hitsPerPage,
460+
validate: (response) => response.hits.length < params.hitsPerPage,
460461
...browseRulesOptions,
461462
});
462463
},
@@ -501,7 +502,7 @@ export function createSearchClient({
501502
params.page += 1;
502503
return resp;
503504
},
504-
validate: (response) => response.nbHits < params.hitsPerPage,
505+
validate: (response) => response.hits.length < params.hitsPerPage,
505506
...browseSynonymsOptions,
506507
});
507508
},

clients/algoliasearch-client-python/algoliasearch/search/client.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,7 @@ async def browse_objects(
351351
"""
352352
Helper: Iterate on the `browse` method of the client to allow aggregating objects of an index.
353353
"""
354+
browse_params.hits_per_page = browse_params.hits_per_page or 1000
354355

355356
async def _func(_prev: Optional[BrowseResponse]) -> BrowseResponse:
356357
if _prev is not None and _prev.cursor is not None:
@@ -392,7 +393,7 @@ async def _func(_prev: Optional[SearchRulesResponse]) -> SearchRulesResponse:
392393

393394
return await create_iterable(
394395
func=_func,
395-
validate=lambda _resp: _resp.nb_hits < hits_per_page,
396+
validate=lambda _resp: len(_resp.hits) < hits_per_page,
396397
aggregator=aggregator,
397398
)
398399

@@ -427,7 +428,7 @@ async def _func(
427428

428429
return await create_iterable(
429430
func=_func,
430-
validate=lambda _resp: _resp.nb_hits < hits_per_page,
431+
validate=lambda _resp: len(_resp.hits) < hits_per_page,
431432
aggregator=aggregator,
432433
)
433434

@@ -5362,6 +5363,7 @@ def browse_objects(
53625363
"""
53635364
Helper: Iterate on the `browse` method of the client to allow aggregating objects of an index.
53645365
"""
5366+
browse_params.hits_per_page = browse_params.hits_per_page or 1000
53655367

53665368
def _func(_prev: Optional[BrowseResponse]) -> BrowseResponse:
53675369
if _prev is not None and _prev.cursor is not None:
@@ -5403,7 +5405,7 @@ def _func(_prev: Optional[SearchRulesResponse]) -> SearchRulesResponse:
54035405

54045406
return create_iterable_sync(
54055407
func=_func,
5406-
validate=lambda _resp: _resp.nb_hits < hits_per_page,
5408+
validate=lambda _resp: len(_resp.hits) < hits_per_page,
54075409
aggregator=aggregator,
54085410
)
54095411

@@ -5436,7 +5438,7 @@ def _func(_prev: Optional[SearchSynonymsResponse]) -> SearchSynonymsResponse:
54365438

54375439
return create_iterable_sync(
54385440
func=_func,
5439-
validate=lambda _resp: _resp.nb_hits < hits_per_page,
5441+
validate=lambda _resp: len(_resp.hits) < hits_per_page,
54405442
aggregator=aggregator,
54415443
)
54425444

clients/algoliasearch-client-ruby/lib/algolia/api/search_client.rb

+4-2
Original file line numberDiff line numberDiff line change
@@ -3201,6 +3201,8 @@ def wait_for_api_key(
32013201
# @param request_options [Hash] the requestOptions to send along with the query, they will be forwarded to the `browse` method.
32023202
# @param block [Proc] the block to execute on each object of the index.
32033203
def browse_objects(index_name, browse_params = Search::BrowseParamsObject.new, request_options = {}, &block)
3204+
browse_params[:hits_per_page] = browse_params[:hits_per_page] || 1000
3205+
32043206
hits = []
32053207
loop do
32063208
res = browse(index_name, browse_params, request_options)
@@ -3243,7 +3245,7 @@ def browse_rules(
32433245
end
32443246

32453247
search_rules_params.page += 1
3246-
break if res.nb_hits < search_rules_params.hits_per_page
3248+
break if res.hits.length < search_rules_params.hits_per_page
32473249
end
32483250

32493251
rules unless block_given?
@@ -3273,7 +3275,7 @@ def browse_synonyms(
32733275
end
32743276

32753277
search_synonyms_params.page += 1
3276-
break if res.nb_hits < search_synonyms_params.hits_per_page
3278+
break if res.hits.length < search_synonyms_params.hits_per_page
32773279
end
32783280

32793281
synonyms unless block_given?

clients/algoliasearch-client-swift/Sources/Search/Extra/SearchClientExtension.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ public extension SearchClient {
245245
) async throws -> BrowseResponse<T> {
246246
var updatedBrowseParams = browseParams
247247
if updatedBrowseParams.hitsPerPage == nil {
248-
updatedBrowseParams.hitsPerPage = 1000
248+
updatedBrowseParams.hitsPerPage = 1000
249249
}
250250

251251
return try await createIterable(
@@ -302,7 +302,7 @@ public extension SearchClient {
302302
)
303303
},
304304
validate: validate ?? { response in
305-
response.hits.count < hitsPerPage
305+
response.hits.count < hitsPerPage
306306
},
307307
aggregator: aggregator
308308
)
@@ -345,7 +345,7 @@ public extension SearchClient {
345345
)
346346
},
347347
validate: validate ?? { response in
348-
response.hits.count < hitsPerPage
348+
response.hits.count < hitsPerPage
349349
},
350350
aggregator: aggregator
351351
)

0 commit comments

Comments
 (0)