diff --git a/packages/stream_chat/lib/src/core/models/filter.dart b/packages/stream_chat/lib/src/core/models/filter.dart index ca494bdb..ba7d044e 100644 --- a/packages/stream_chat/lib/src/core/models/filter.dart +++ b/packages/stream_chat/lib/src/core/models/filter.dart @@ -40,9 +40,12 @@ enum FilterOperator { /// Matches values with the specified prefix. autoComplete, - /// Matches values that exist/don't exist based on the specified boolean value. + /// Matches values that exist. exists, + /// Matches values that don't exist. + notExists, + /// Matches all the values specified in an array. and, @@ -163,9 +166,13 @@ class Filter extends Equatable { factory Filter.autoComplete(String key, String text) => Filter._(operator: FilterOperator.autoComplete, key: key, value: text); - /// Matches values that exist/don't exist based on the specified boolean value. - factory Filter.exists(String key, {bool exists = true}) => - Filter._(operator: FilterOperator.exists, key: key, value: exists); + /// Matches values that exist. + factory Filter.exists(String key) => + Filter._(operator: FilterOperator.exists, key: key, value: true); + + /// Matches values that don't exist. + factory Filter.notExists(String key) => + Filter._(operator: FilterOperator.exists, key: key, value: false); /// Matches any list that contains the specified values factory Filter.contains(String key, Object value) => diff --git a/packages/stream_chat/test/src/core/models/filter_test.dart b/packages/stream_chat/test/src/core/models/filter_test.dart index c0a8ce8f..f836d845 100644 --- a/packages/stream_chat/test/src/core/models/filter_test.dart +++ b/packages/stream_chat/test/src/core/models/filter_test.dart @@ -114,7 +114,7 @@ void main() { test('notExists', () { const key = 'testKey'; - final filter = Filter.exists(key, exists: false); + final filter = Filter.notExists(key); expect(filter.key, key); expect(filter.value, isFalse); expect(filter.operator, FilterOperator.exists.rawValue);