fromApiResponse static method

KfAssetsConfig? fromApiResponse(
  1. dynamic apiResponse
)

Parses the raw API response from getKfAssetsProperties. Expects: data.components.LEAD_GENE_POPUP.properties

Implementation

static KfAssetsConfig? fromApiResponse(dynamic apiResponse) {
  try {
    final data = apiResponse is Map ? apiResponse['data'] : null;
    final components = data is Map ? data['components'] : null;
    final popup = components is Map ? components['LEAD_GENE_POPUP'] : null;
    final props = popup is Map ? popup['properties'] : null;
    if (props is! Map<String, dynamic>) return null;

    return KfAssetsConfig(
      primaryColour: props['PrimaryColour']?.toString() ?? '#112693',
      formScreen: props['form_screen'] is Map<String, dynamic>
          ? KfFormScreen.fromJson(props['form_screen'] as Map<String, dynamic>)
          : const KfFormScreen(title: '', subTitle: '', buttonText: 'Submit', inputFields: []),
      addressScreen: props['address_screen'] is Map<String, dynamic>
          ? KfAddressScreen.fromJson(props['address_screen'] as Map<String, dynamic>)
          : const KfAddressScreen(inputFields: []),
      successScreen: props['success_screen'] is Map<String, dynamic>
          ? KfSuccessScreen.fromJson(props['success_screen'] as Map<String, dynamic>)
          : const KfSuccessScreen(logo: '', heading: '', message: '', screenTimeout: 5),
    );
  } catch (e) {
    return null;
  }
}