updatePayload method

  1. @override
SubmitServiceEvent updatePayload(
  1. SubmitServiceEvent originalPayload,
  2. String newValue
)
override

Implement in subclasses to update the payload with the new value.

Implementation

@override
SubmitServiceEvent updatePayload(
  SubmitServiceEvent originalPayload,
  String newValue,
) {
  final updatedPayload = originalPayload.deepCopy();
  updatedPayload.updateServiceAdminNewEmail = newValue;

  if (originalEmail == updatedPayload.updateServiceAdminNewEmail) {
    updatedPayload.event.updateServiceAdmin.filter = serviceState.filter;
  } else {
    final emails = allowedEmails.keys.toList();
    emails.remove(originalEmail);
    emails.add(updatedPayload.updateServiceAdminNewEmail);
    final bloom = BloomFilterProcessor(
      size: serviceState.filter.size,
      hashCount: serviceState.filter.hashCount,
    )..addAll(emails);

    updatedPayload.event.updateServiceAdmin.filter = BloomFilter()
      ..size = bloom.size
      ..hashCount = bloom.hashCount
      ..bitArray = bloom.bitArray;
  }

  return updatedPayload;
}