searchMembersGateway method

Stream<Member> searchMembersGateway(
  1. String query, {
  2. int limit = 0,
})

Returns a Stream of Members objects whose username or nickname starts with a provided string. By default limits to one entry - can be changed with limit parameter.

Implementation

Stream<Member> searchMembersGateway(String query, {int limit = 0}) async* {
  final nonce = "$query${id.toString()}";
  this.shard.requestMembers(this.id, query: query, limit: limit, nonce: nonce);

  final first = (await this.shard.onMemberChunk.take(1).toList()).first;

  for (final member in first.members) {
    yield member;
  }

  if (first.chunkCount > 1) {
    await for (final event in this.shard.onMemberChunk.where((event) => event.nonce == nonce).take(first.chunkCount - 1)) {
      for (final member in event.members) {
        yield member;
      }
    }
  }
}