GiphyMedia.fromJson constructor

GiphyMedia.fromJson(
  1. Map<Object?, Object?> json
)

Creates a GiphyMedia instance from a JSON object.

json A map containing key-value pairs corresponding to the media attributes.

Returns a GiphyMedia instance populated with the values from the JSON object.

Implementation

factory GiphyMedia.fromJson(Map<Object?, Object?> json) => GiphyMedia(
      id: json['id'] as String,
      type: json['type'] != null
          ? GiphyMediaTypeExtension.fromStringValue(json['type'] as String)
          : null,
      slug: json['slug'] as String?,
      url: json['url'] as String?,
      bitlyGifUrl: json['bitlyGifUrl'] as String?,
      bitlyUrl: json['bitlyUrl'] as String?,
      embedUrl: json['embedUrl'] as String?,
      source: json['source'] as String?,
      title: json['title'] as String?,
      rating: json['rating'] != null
          ? GiphyRatingExtension.fromStringValue(json['rating'] as String)
          : null,
      contentUrl: json['contentUrl'] as String?,
      tags: json['tags'] != null
          ? List<String>.from(json['tags'] as List)
          : null,
      featuredTags: json['featuredTags'] != null
          ? List<String>.from(json['featuredTags'] as List)
          : null,
      user: json['user'] != null
          ? GiphyUser.fromJson(json['user'] as Map<Object?, Object?>)
          : null,
      images: GiphyImages.fromJson(json['images'] as Map<Object?, Object?>),
      video: json['video'] != null
          ? GiphyVideo.fromJson(json['video'] as Map<Object?, Object?>)
          : null,
      analyticsResponsePayload: json['analyticsResponsePayload'] as String?,
      sourceTld: json['sourceTld'] as String?,
      sourcePostUrl: json['sourcePostUrl'] as String?,
      updateDate: json['updateDate'] != null
          ? DateTime.parse(json['updateDate'] as String)
          : null,
      createDate: json['createDate'] != null
          ? DateTime.parse(json['createDate'] as String)
          : null,
      importDate: json['importDate'] != null
          ? DateTime.parse(json['importDate'] as String)
          : null,
      trendingDate: json['trendingDate'] != null
          ? DateTime.parse(json['trendingDate'] as String)
          : null,
      isHidden: json['isHidden'] as bool? ?? false,
      isRemoved: json['isRemoved'] as bool? ?? false,
      isCommunity: json['isCommunity'] as bool? ?? false,
      isAnonymous: json['isAnonymous'] as bool? ?? false,
      isFeatured: json['isFeatured'] as bool? ?? false,
      isRealtime: json['isRealtime'] as bool? ?? false,
      isIndexable: json['isIndexable'] as bool? ?? false,
      isSticker: json['isSticker'] as bool? ?? false,
      isDynamic: json['isDynamic'] as bool? ?? false,
      isVideo: json['isVideo'] as bool? ?? false,
      animatedTextStyle: json['animatedTextStyle'] as String?,
      hasAttributions: json['hasAttributions'] as bool? ?? false,
      altText: json['altText'] as String?,
      variation: json['variation'] as String?,
      variationCount: json['variationCount'] as int?,
      aspectRatio: json['aspectRatio'] as double? ?? 1.0,
      userDictionary: json['userDictionary'] != null
          ? Map<String, String>.fromEntries(
              (json['userDictionary'] as Map).entries.map(
                    (e) => MapEntry(e.key as String, e.value.toString()),
                  ),
            )
          : {},
    );