updateUploader method

  1. @override
FutureOr<void> updateUploader(
  1. String name,
  2. String oldEmail,
  3. String newEmail
)
override

Implementation

@override
FutureOr<void> updateUploader(
    String name, String oldEmail, String newEmail) async {
  final existing = await query(name);
  if (existing == null) {
    throw StateError('$name not exist!');
  }
  final uploaders = [...?existing.uploaders];
  final index = uploaders.indexOf(oldEmail);
  if (index < 0) {
    throw StateError('$oldEmail not exists in uploader!');
  }
  if (uploaders.contains(newEmail)) {
    throw StateError('$newEmail already exists in uploader!');
  }
  uploaders[index] = newEmail;
  await _put(existing.copyWith(uploaders: uploaders));
}