setAvatar method Null safety

Future<Supporter?> setAvatar(
  1. {required Supporter supporter,
  2. required MediaAsset asset}
)

Sets the referenced asset as patient avatar. The asset already needs to be present in the CMS and must not be a local asset. When done, causes the repository to emit an updated supporter instance with the avatar referenced as remote URL.

Implementation

Future<Supporter?> setAvatar(
    {required final Supporter supporter,
    required final MediaAsset asset}) async {
  final result = await setUserAvatar(user: supporter, asset: asset);

  if (result) {
    final modifiedSupporter =
        supporter.rebuild((p) => p..avatar = asset.toBuilder());

    _sendSupporterUpdate(supporter: modifiedSupporter);

    return modifiedSupporter;
  }

  return null;
}