loadProfiles method

Future loadProfiles(
  1. ApiBase api,
  2. String connectedUserId
)

Fetches the sender and receiver profiles from the API if they are not already loaded

Implementation

Future loadProfiles(ApiBase api, String connectedUserId) async {
  if (sender != null && receiver != null) return;
  late Either<ApiError, Profile> senderProfile;
  late Either<ApiError, Profile> receiverProfile;
  if (senderId == connectedUserId) {
    if (sender == null) {
      senderProfile = await api.getMyProfile();
    } else {
      senderProfile = Right(sender!);
    }
    if (receiver == null) {
      receiverProfile = await api.getProfile(receiverId);
    } else {
      receiverProfile = Right(receiver!);
    }
  } else {
    if (sender == null) {
      senderProfile = await api.getProfile(senderId);
    } else {
      senderProfile = Right(sender!);
    }
    if (receiver == null) {
      receiverProfile = await api.getMyProfile();
    } else {
      receiverProfile = Right(receiver!);
    }
  }
  senderProfile.map((profile) {
    sender = profile;
  }).mapLeft((error) {
    senderError = error;
  });
  receiverProfile.map((profile) {
    receiver = profile;
  }).mapLeft((error) {
    receiverError = error;
  });
}