fromJson method

  1. @override
UEmbedGetEmbedExternalViewData fromJson(
  1. Map<String, dynamic> json
)

Implementation

@override
UEmbedGetEmbedExternalViewData fromJson(Map<String, dynamic> json) {
  if (EmbedExternalViewArticle.validate(json)) {
    return UEmbedGetEmbedExternalViewData.embedExternalViewArticle(
      data: const EmbedExternalViewArticleConverter().fromJson(json),
    );
  }
  if (EmbedExternalViewArticlePublication.validate(json)) {
    return UEmbedGetEmbedExternalViewData.embedExternalViewArticlePublication(
      data: const EmbedExternalViewArticlePublicationConverter().fromJson(
        json,
      ),
    );
  }
  if (EmbedExternalViewGallery.validate(json)) {
    return UEmbedGetEmbedExternalViewData.embedExternalViewGallery(
      data: const EmbedExternalViewGalleryConverter().fromJson(json),
    );
  }
  if (EmbedExternalViewLivestream.validate(json)) {
    return UEmbedGetEmbedExternalViewData.embedExternalViewLivestream(
      data: const EmbedExternalViewLivestreamConverter().fromJson(json),
    );
  }

  // No known `$type` matched: preserve the payload verbatim as an unknown
  // variant. A payload whose `$type` *does* match a known ref but fails to
  // convert is intentionally left to throw, so malformed data surfaces
  // instead of being silently degraded to `.unknown`.
  return UEmbedGetEmbedExternalViewData.unknown(data: json);
}