changeBan method

Future<bool> changeBan(
  1. String reference, {
  2. required bool banned,
  3. DateTime? until,
  4. String? reason,
})

Implementation

Future<bool> changeBan(
  String reference, {
  required bool banned,
  DateTime? until,
  String? reason,
}) async {
  final user = await getUserByReference(reference);
  final fingerprint = user?.fingerprint;
  if (user == null || fingerprint == null) return false;
  final result = await service?.updateUser(
    fingerprint,
    banned: banned,
    bannedUntil: banned ? until : null,
    banReason: banned ? reason : null,
  );
  if (result == false) return false;
  final entry = _users.entries
      .where((entry) => entry.value.fingerprint == fingerprint)
      .firstOrNull;
  if (entry != null) {
    _users[entry.key] = entry.value.copyWith(
      banned: banned,
      bannedUntil: banned ? until : null,
      banReason: banned ? reason : null,
    );
  }
  return true;
}