fromInterface static method

ProfileSignupRequest fromInterface(
  1. ProfileSignupRequestInterface profileSignupRequestInterface
)

convert a ProfileSignupRequestInterface to a ProfileSignupRequest

Implementation

static ProfileSignupRequest fromInterface(
  ProfileSignupRequestInterface profileSignupRequestInterface,
) {
  final addresses = profileSignupRequestInterface.addresses
      ?.where((profileAddressInterface) => profileAddressInterface != null)
      .cast<ProfileAddressInterface>()
      .map(ProfileAddressConverter.fromInterface)
      .toList();

  final profileCustomFieldsInterface =
      profileSignupRequestInterface.customFields;
  final customFieldsInterface = profileCustomFieldsInterface != null
      ? Map<String?, Object?>.from(profileCustomFieldsInterface)
      : null;
  customFieldsInterface?.removeWhere((key, _) => key == null);
  final customFields = customFieldsInterface?.cast<String, Object?>();

  final profileConsentsInterface = profileSignupRequestInterface.consents;
  final consentsInterface = profileConsentsInterface != null
      ? Map<String?, ConsentInterface?>.from(profileConsentsInterface)
      : null;
  consentsInterface
      ?.removeWhere((key, value) => key == null || value == null);
  final consents = consentsInterface?.cast<String, ConsentInterface>().map(
        (key, consentInterface) =>
            MapEntry(key, ConsentConverter.fromInterface(consentInterface)),
      );

  return ProfileSignupRequest(
    password: profileSignupRequestInterface.password,
    email: profileSignupRequestInterface.email,
    phoneNumber: profileSignupRequestInterface.phoneNumber,
    givenName: profileSignupRequestInterface.givenName,
    middleName: profileSignupRequestInterface.middleName,
    familyName: profileSignupRequestInterface.familyName,
    name: profileSignupRequestInterface.name,
    nickname: profileSignupRequestInterface.nickname,
    birthdate: profileSignupRequestInterface.birthdate,
    profileURL: profileSignupRequestInterface.profileURL,
    picture: profileSignupRequestInterface.picture,
    username: profileSignupRequestInterface.username,
    gender: profileSignupRequestInterface.gender,
    company: profileSignupRequestInterface.company,
    addresses: addresses,
    locale: profileSignupRequestInterface.locale,
    bio: profileSignupRequestInterface.bio,
    customFields: customFields,
    consents: consents,
    liteOnly: profileSignupRequestInterface.liteOnly,
  );
}