diff --git a/src/Umbraco.Core/DeliveryApi/ApiMediaUrlProvider.cs b/src/Umbraco.Core/DeliveryApi/ApiMediaUrlProvider.cs index 20373b1d3baa..f8ebee826b63 100644 --- a/src/Umbraco.Core/DeliveryApi/ApiMediaUrlProvider.cs +++ b/src/Umbraco.Core/DeliveryApi/ApiMediaUrlProvider.cs @@ -17,6 +17,6 @@ public string GetUrl(IPublishedContent media) throw new ArgumentException("Media URLs can only be generated from Media items.", nameof(media)); } - return _publishedUrlProvider.GetMediaUrl(media, UrlMode.Relative); + return _publishedUrlProvider.GetMediaUrl(media); } } diff --git a/src/Umbraco.Infrastructure/DeliveryApi/ApiRichTextElementParser.cs b/src/Umbraco.Infrastructure/DeliveryApi/ApiRichTextElementParser.cs index eeb279e1b792..eed3b848ebac 100644 --- a/src/Umbraco.Infrastructure/DeliveryApi/ApiRichTextElementParser.cs +++ b/src/Umbraco.Infrastructure/DeliveryApi/ApiRichTextElementParser.cs @@ -22,28 +22,13 @@ internal sealed class ApiRichTextElementParser : ApiRichTextParserBase, IApiRich private const string TextNodeName = "#text"; private const string CommentNodeName = "#comment"; - [Obsolete($"Please use the constructor that accepts {nameof(IApiElementBuilder)}. Will be removed in V15.")] public ApiRichTextElementParser( IApiContentRouteBuilder apiContentRouteBuilder, - IPublishedUrlProvider publishedUrlProvider, - IPublishedSnapshotAccessor publishedSnapshotAccessor, - ILogger logger) - : this( - apiContentRouteBuilder, - publishedUrlProvider, - publishedSnapshotAccessor, - StaticServiceProvider.Instance.GetRequiredService(), - logger) - { - } - - public ApiRichTextElementParser( - IApiContentRouteBuilder apiContentRouteBuilder, - IPublishedUrlProvider publishedUrlProvider, + IApiMediaUrlProvider mediaUrlProvider, IPublishedSnapshotAccessor publishedSnapshotAccessor, IApiElementBuilder apiElementBuilder, ILogger logger) - : base(apiContentRouteBuilder, publishedUrlProvider) + : base(apiContentRouteBuilder, mediaUrlProvider) { _publishedSnapshotAccessor = publishedSnapshotAccessor; _apiElementBuilder = apiElementBuilder; diff --git a/src/Umbraco.Infrastructure/DeliveryApi/ApiRichTextMarkupParser.cs b/src/Umbraco.Infrastructure/DeliveryApi/ApiRichTextMarkupParser.cs index f7eeba0f1812..42c882986871 100644 --- a/src/Umbraco.Infrastructure/DeliveryApi/ApiRichTextMarkupParser.cs +++ b/src/Umbraco.Infrastructure/DeliveryApi/ApiRichTextMarkupParser.cs @@ -3,7 +3,6 @@ using Umbraco.Cms.Core; using Umbraco.Cms.Core.DeliveryApi; using Umbraco.Cms.Core.PublishedCache; -using Umbraco.Cms.Core.Routing; using Umbraco.Extensions; namespace Umbraco.Cms.Infrastructure.DeliveryApi; @@ -15,10 +14,10 @@ internal sealed class ApiRichTextMarkupParser : ApiRichTextParserBase, IApiRichT public ApiRichTextMarkupParser( IApiContentRouteBuilder apiContentRouteBuilder, - IPublishedUrlProvider publishedUrlProvider, + IApiMediaUrlProvider mediaUrlProvider, IPublishedSnapshotAccessor publishedSnapshotAccessor, ILogger logger) - : base(apiContentRouteBuilder, publishedUrlProvider) + : base(apiContentRouteBuilder, mediaUrlProvider) { _publishedSnapshotAccessor = publishedSnapshotAccessor; _logger = logger; diff --git a/src/Umbraco.Infrastructure/DeliveryApi/ApiRichTextParserBase.cs b/src/Umbraco.Infrastructure/DeliveryApi/ApiRichTextParserBase.cs index 0509105b05c1..7723fc835c7f 100644 --- a/src/Umbraco.Infrastructure/DeliveryApi/ApiRichTextParserBase.cs +++ b/src/Umbraco.Infrastructure/DeliveryApi/ApiRichTextParserBase.cs @@ -4,19 +4,18 @@ using Umbraco.Cms.Core.Models.DeliveryApi; using Umbraco.Cms.Core.Models.PublishedContent; using Umbraco.Cms.Core.PublishedCache; -using Umbraco.Cms.Core.Routing; namespace Umbraco.Cms.Infrastructure.DeliveryApi; internal abstract partial class ApiRichTextParserBase { private readonly IApiContentRouteBuilder _apiContentRouteBuilder; - private readonly IPublishedUrlProvider _publishedUrlProvider; + private readonly IApiMediaUrlProvider _apiMediaUrlProvider; - protected ApiRichTextParserBase(IApiContentRouteBuilder apiContentRouteBuilder, IPublishedUrlProvider publishedUrlProvider) + protected ApiRichTextParserBase(IApiContentRouteBuilder apiContentRouteBuilder, IApiMediaUrlProvider apiMediaUrlProvider) { _apiContentRouteBuilder = apiContentRouteBuilder; - _publishedUrlProvider = publishedUrlProvider; + _apiMediaUrlProvider = apiMediaUrlProvider; } protected void ReplaceLocalLinks(IPublishedSnapshot publishedSnapshot, string href, Action handleContentRoute, Action handleMediaUrl, Action handleInvalidLink) @@ -52,7 +51,7 @@ protected void ReplaceLocalLinks(IPublishedSnapshot publishedSnapshot, string hr if (media != null) { handled = true; - handleMediaUrl(_publishedUrlProvider.GetMediaUrl(media, UrlMode.Absolute)); + handleMediaUrl(_apiMediaUrlProvider.GetUrl(media)); } break; @@ -77,7 +76,7 @@ protected void ReplaceLocalImages(IPublishedSnapshot publishedSnapshot, string u return; } - handleMediaUrl(_publishedUrlProvider.GetMediaUrl(media, UrlMode.Absolute)); + handleMediaUrl(_apiMediaUrlProvider.GetUrl(media)); } [GeneratedRegex("{localLink:(?umb:.+)}")] diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ApiMediaUrlProviderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ApiMediaUrlProviderTests.cs index e1900d203f17..0dfffbf63826 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ApiMediaUrlProviderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ApiMediaUrlProviderTests.cs @@ -21,7 +21,7 @@ public void Media_Url_Provider_Returns_Relative_Published_Media_Url(string publi var publishedUrlProvider = new Mock(); publishedUrlProvider - .Setup(p => p.GetMediaUrl(content.Object, UrlMode.Relative, It.IsAny(), It.IsAny(), It.IsAny())) + .Setup(p => p.GetMediaUrl(content.Object, UrlMode.Default, It.IsAny(), It.IsAny(), It.IsAny())) .Returns(publishedUrl); var apiMediaUrlProvider = new ApiMediaUrlProvider(publishedUrlProvider.Object); diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/RichTextParserTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/RichTextParserTests.cs index b7712b534668..a2522a5ecd9b 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/RichTextParserTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/RichTextParserTests.cs @@ -9,7 +9,6 @@ using Umbraco.Cms.Core.PropertyEditors; using Umbraco.Cms.Core.PropertyEditors.ValueConverters; using Umbraco.Cms.Core.PublishedCache; -using Umbraco.Cms.Core.Routing; using Umbraco.Cms.Infrastructure.DeliveryApi; namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.DeliveryApi; @@ -474,7 +473,7 @@ private ApiRichTextMarkupParser CreateRichTextMarkupParser() Mock.Of>()); } - private void SetupTestContent(out IApiContentRouteBuilder routeBuilder, out IPublishedSnapshotAccessor snapshotAccessor, out IPublishedUrlProvider urlProvider) + private void SetupTestContent(out IApiContentRouteBuilder routeBuilder, out IPublishedSnapshotAccessor snapshotAccessor, out IApiMediaUrlProvider apiMediaUrlProvider) { var contentMock = new Mock(); contentMock.SetupGet(m => m.Key).Returns(_contentKey); @@ -502,14 +501,14 @@ private void SetupTestContent(out IApiContentRouteBuilder routeBuilder, out IPub .Setup(m => m.Build(contentMock.Object, null)) .Returns(new ApiContentRoute("/some-content-path", new ApiContentStartItem(_contentRootKey, "the-root-path"))); - var urlProviderMock = new Mock(); - urlProviderMock - .Setup(m => m.GetMediaUrl(mediaMock.Object, It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) + var apiMediaUrlProviderMock = new Mock(); + apiMediaUrlProviderMock + .Setup(m => m.GetUrl(mediaMock.Object)) .Returns("/some-media-url"); routeBuilder = routeBuilderMock.Object; snapshotAccessor = snapshotAccessorMock.Object; - urlProvider = urlProviderMock.Object; + apiMediaUrlProvider = apiMediaUrlProviderMock.Object; } private IPublishedElement CreateElement(Guid id, int propertyValue)