GrovsLinkDetails.fromMap constructor

GrovsLinkDetails.fromMap(
  1. Map map
)

Implementation

factory GrovsLinkDetails.fromMap(Map<dynamic, dynamic> map) {
  final raw = _stringKeyed(map);
  final source = _string(raw['tracking_source']);
  final medium = _string(raw['tracking_medium']);
  final campaign = _string(raw['tracking_campaign']);
  final ios = CustomLinkRedirect.fromMap(raw['ios_custom_redirect']);
  final android = CustomLinkRedirect.fromMap(raw['android_custom_redirect']);
  final desktop = CustomLinkRedirect.fromMap(raw['desktop_custom_redirect']);
  final tags = raw['tags'];
  final updatedAt = _string(raw['updated_at']);
  final data = raw['data'];

  return GrovsLinkDetails(
    id: _int(raw['id']),
    name: _string(raw['name']),
    path: _string(raw['path']),
    title: _string(raw['title']),
    subtitle: _string(raw['subtitle']),
    image: _string(raw['image']),
    accessPath: _string(raw['access_path']),
    active: _bool(raw['active']),
    sdkGenerated: _bool(raw['sdk_generated']),
    data: data is Map<String, dynamic> ? data : null,
    tags: tags is List ? tags.whereType<String>().toList() : null,
    updatedAt: updatedAt == null ? null : DateTime.tryParse(updatedAt),
    showPreviewIos: _bool(raw['show_preview_ios']),
    showPreviewAndroid: _bool(raw['show_preview_android']),
    generatedFromPlatform: _string(raw['generated_from_platform']),
    adsPlatform: _string(raw['ads_platform']),
    campaignId: _int(raw['campaign_id']),
    tracking: source == null && medium == null && campaign == null
        ? null
        : TrackingParams(
            utmSource: source,
            utmMedium: medium,
            utmCampaign: campaign,
          ),
    customRedirects: ios == null && android == null && desktop == null
        ? null
        : CustomRedirects(ios: ios, android: android, desktop: desktop),
    raw: raw,
  );
}