Skip to content

Commit 4b58b5d

Browse files
committed
Fix tagFilters implementation, adding tagFilters with OR relations
1 parent 6264018 commit 4b58b5d

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

lib/src/query.dart

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class AlgoliaQuery {
2424
List<List<String>>.unmodifiable(<List<String>>[]),
2525
'numericFilters':
2626
List<List<String>>.unmodifiable(<List<String>>[]),
27-
'tagFilters': List<List<String>>.unmodifiable(<List<String>>[]),
27+
'tagFilters': List<dynamic>.unmodifiable(<dynamic>[]),
2828
});
2929
final Algolia algolia;
3030
final String _index;
@@ -671,13 +671,21 @@ class AlgoliaQuery {
671671
/// Source: [Learn more](https://www.algolia.com/doc/api-reference/api-parameters/tagFilters/)
672672
///
673673
AlgoliaQuery setTagFilter(String value) {
674-
final tagFilters = List<String>.from(_parameters['tagFilters']);
675-
assert(tagFilters.where((String item) => value == item).isEmpty,
674+
final tagFilters = List<dynamic>.from(_parameters['tagFilters']);
675+
assert(tagFilters.where((dynamic item) => value == item).isEmpty,
676676
'TagFilters $value already exists in this query');
677-
tagFilters.add(value);
677+
tagFilters.add([value]);
678678
return _copyWithParameters(<String, dynamic>{'tagFilters': tagFilters});
679679
}
680680

681+
AlgoliaQuery setTagFilterOneOf(List<String> oneOfValues) {
682+
assert(oneOfValues.isNotEmpty);
683+
final tagFilters = List<dynamic>.from(_parameters['tagFilters']);
684+
tagFilters.add(List.unmodifiable([...oneOfValues]));
685+
return _copyWithParameters(<String, dynamic>{'tagFilters': tagFilters});
686+
}
687+
688+
681689
///
682690
/// **sumOrFiltersScores**
683691
///

0 commit comments

Comments
 (0)