searchMetadatas method
Search by name, nip05
Implementation
@override
Future<Iterable<Metadata>> searchMetadatas(String search, int limit) async {
sembast.Filter? filter;
if (search.isNotEmpty) {
final pattern = RegExp.escape(search);
filter = sembast.Filter.or([
sembast.Filter.matchesRegExp(
'name', RegExp(pattern, caseSensitive: false)),
sembast.Filter.matchesRegExp(
'displayName', RegExp(pattern, caseSensitive: false)),
sembast.Filter.matchesRegExp(
'about', RegExp(pattern, caseSensitive: false)),
sembast.Filter.matchesRegExp(
'nip05', RegExp(pattern, caseSensitive: false)),
]);
}
final finder = sembast.Finder(
filter: filter,
limit: limit,
sortOrders: [sembast.SortOrder('updatedAt', false)],
);
final records = await _metadataStore.find(_database, finder: finder);
return records
.map((record) => MetadataExtension.fromJsonStorage(record.value))
.toList();
}