changeBan method
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;
}