diff --git a/src/Umbraco.Core/Media/EmbedProviders/OEmbedResponse.cs b/src/Umbraco.Core/Media/EmbedProviders/OEmbedResponse.cs index 370d2609c7..61c6b2d13f 100644 --- a/src/Umbraco.Core/Media/EmbedProviders/OEmbedResponse.cs +++ b/src/Umbraco.Core/Media/EmbedProviders/OEmbedResponse.cs @@ -1,68 +1,10 @@ -using System.Net; using System.Runtime.Serialization; namespace Umbraco.Cms.Core.Media.EmbedProviders; /// -/// Wrapper class for OEmbed response +/// Wrapper class for OEmbed response. /// [DataContract] -public class OEmbedResponse -{ - [DataMember(Name = "type")] - public string? Type { get; set; } +public class OEmbedResponse : OEmbedResponseBase; - [DataMember(Name = "version")] - public string? Version { get; set; } - - [DataMember(Name = "title")] - public string? Title { get; set; } - - [DataMember(Name = "author_name")] - public string? AuthorName { get; set; } - - [DataMember(Name = "author_url")] - public string? AuthorUrl { get; set; } - - [DataMember(Name = "provider_name")] - public string? ProviderName { get; set; } - - [DataMember(Name = "provider_url")] - public string? ProviderUrl { get; set; } - - [DataMember(Name = "thumbnail_url")] - public string? ThumbnailUrl { get; set; } - - [DataMember(Name = "thumbnail_height")] - public double? ThumbnailHeight { get; set; } - - [DataMember(Name = "thumbnail_width")] - public double? ThumbnailWidth { get; set; } - - [DataMember(Name = "html")] - public string? Html { get; set; } - - [DataMember(Name = "url")] - public string? Url { get; set; } - - [DataMember(Name = "height")] - public double? Height { get; set; } - - [DataMember(Name = "width")] - public double? Width { get; set; } - - /// - /// Gets the HTML. - /// - /// The response HTML - public string GetHtml() - { - if (Type == "photo") - { - return "\"""; - } - - return string.IsNullOrEmpty(Html) == false ? Html : string.Empty; - } -} diff --git a/src/Umbraco.Core/Media/EmbedProviders/OEmbedResponseBase.cs b/src/Umbraco.Core/Media/EmbedProviders/OEmbedResponseBase.cs new file mode 100644 index 0000000000..57e4c878c7 --- /dev/null +++ b/src/Umbraco.Core/Media/EmbedProviders/OEmbedResponseBase.cs @@ -0,0 +1,68 @@ +using System.Net; +using System.Runtime.Serialization; + +namespace Umbraco.Cms.Core.Media.EmbedProviders; + +/// +/// Base class for OEmbed response. +/// +[DataContract] +public abstract class OEmbedResponseBase +{ + [DataMember(Name = "type")] + public string? Type { get; set; } + + [DataMember(Name = "version")] + public string? Version { get; set; } + + [DataMember(Name = "title")] + public string? Title { get; set; } + + [DataMember(Name = "author_name")] + public string? AuthorName { get; set; } + + [DataMember(Name = "author_url")] + public string? AuthorUrl { get; set; } + + [DataMember(Name = "provider_name")] + public string? ProviderName { get; set; } + + [DataMember(Name = "provider_url")] + public string? ProviderUrl { get; set; } + + [DataMember(Name = "thumbnail_url")] + public string? ThumbnailUrl { get; set; } + + [DataMember(Name = "thumbnail_height")] + public T? ThumbnailHeight { get; set; } + + [DataMember(Name = "thumbnail_width")] + public T? ThumbnailWidth { get; set; } + + [DataMember(Name = "html")] + public string? Html { get; set; } + + [DataMember(Name = "url")] + public string? Url { get; set; } + + [DataMember(Name = "height")] + public T? Height { get; set; } + + [DataMember(Name = "width")] + public T? Width { get; set; } + + /// + /// Gets the HTML. + /// + /// The response HTML + public string GetHtml() + { + if (Type == "photo") + { + return "\"""; + } + + return string.IsNullOrEmpty(Html) == false ? Html : string.Empty; + } +} diff --git a/src/Umbraco.Core/Media/EmbedProviders/OEmbedResponseWithStringDimensions.cs b/src/Umbraco.Core/Media/EmbedProviders/OEmbedResponseWithStringDimensions.cs new file mode 100644 index 0000000000..22a92dc6c3 --- /dev/null +++ b/src/Umbraco.Core/Media/EmbedProviders/OEmbedResponseWithStringDimensions.cs @@ -0,0 +1,9 @@ +using System.Runtime.Serialization; + +namespace Umbraco.Cms.Core.Media.EmbedProviders; + +/// +/// Wrapper class for OEmbed response with width and height as string values. +/// +[DataContract] +public class OEmbedResponseWithStringDimensions : OEmbedResponseBase;