searchMetadatas method

  1. @override
Future<Iterable<Metadata>> searchMetadatas(
  1. String search,
  2. int limit
)
override

Search by name, nip05

Implementation

@override
Future<Iterable<Metadata>> searchMetadatas(String search, int limit) async {
  await dbRdy;
  final metadataBox = _objectBox.store.box<DbMetadata>();

  // Create a query with OR condition
  final query = metadataBox
      .query(DbMetadata_.splitNameWords
          .containsElement(search, caseSensitive: false)
          .or(DbMetadata_.name
              .startsWith(search, caseSensitive: false)
              .or(DbMetadata_.splitDisplayNameWords
                  .containsElement(search, caseSensitive: false))
              .or(DbMetadata_.displayName
                  .startsWith(search, caseSensitive: false))
              .or(DbMetadata_.nip05
                  .startsWith(search, caseSensitive: false))))
      .order(DbMetadata_.name, flags: Order.descending)
      .build();
  query..limit = limit;
  final results = query.find();

  return results.map((dbMetadata) => dbMetadata.toNdk()).take(limit);
}