addUser method

Future<SetonixUser?> addUser(
  1. Channel channel, [
  2. String? fingerprint,
  3. String? name
])

Implementation

Future<SetonixUser?> addUser(
  Channel channel, [
  String? fingerprint,
  String? name,
]) async {
  SetonixUser? user;
  if (fingerprint != null) {
    user = await service?.getUser(fingerprint);
    if (user == null) throw KickMessage(reason: KickReason.notRegistered);
    name = user.name;
    if (whitelistEnabled && !user.onWhitelist) {
      throw KickMessage(reason: KickReason.notWhitelisted);
    }
  }
  name ??= _generateGuestName();
  if (containsUserName(name)) {
    return null;
  }
  if (user == null) {
    user = SetonixUser(fingerprint: fingerprint, name: name);
    if (fingerprint != null) {
      await service?.updateUser(fingerprint, name: name, onWhitelist: false);
    }
  }
  _users[channel] = user;
  return user;
}