1212use GuzzleHttp \Psr7 \Uri ;
1313use Neos \ContentRepository \Core \Projection \ContentGraph \ContentSubgraphInterface ;
1414use Neos \ContentRepository \Core \Projection \ContentGraph \Node ;
15+ use Neos \ContentRepository \Core \SharedModel \Node \NodeAddress ;
1516use Neos \ContentRepository \Core \SharedModel \Node \NodeAggregateId ;
16- use Neos \ContentRepositoryRegistry \ContentRepositoryRegistry ;
1717use Neos \Flow \Annotations as Flow ;
1818use Neos \Flow \Mvc \Controller \ControllerContext ;
19- use Neos \Flow \Mvc \Routing \UriBuilder ;
2019use Neos \Flow \ResourceManagement \PersistentResource ;
2120use Neos \Flow \ResourceManagement \ResourceManager ;
2221use Neos \Flow \Http ;
2322use Neos \Media \Domain \Model \AssetInterface ;
2423use Neos \Media \Domain \Repository \AssetRepository ;
25- use Neos \Neos \FrontendRouting \NodeAddressFactory ;
26- use Neos \Neos \FrontendRouting \NodeUriBuilder ;
2724use Neos \Flow \Mvc ;
2825use Neos \Flow \Core \Bootstrap ;
26+ use Neos \Neos \FrontendRouting \NodeUriBuilderFactory ;
2927use PackageFactory \AtomicFusion \PresentationObjects \Fusion \UriServiceInterface ;
3028use Psr \Http \Message \UriInterface ;
3129
@@ -38,29 +36,17 @@ final class UriService implements UriServiceInterface
3836 private ?ControllerContext $ controllerContext = null ;
3937
4038 public function __construct (
41- private readonly ContentRepositoryRegistry $ contentRepositoryRegistry ,
4239 private readonly ResourceManager $ resourceManager ,
4340 private readonly AssetRepository $ assetRepository ,
44- private readonly Bootstrap $ bootstrap
41+ private readonly Bootstrap $ bootstrap ,
42+ private readonly NodeUriBuilderFactory $ nodeUriBuilderFactory ,
4543 ) {
4644 }
4745
4846 public function getNodeUri (Node $ documentNode , bool $ absolute = false , ?string $ format = null ): UriInterface
4947 {
50- $ contentRepository = $ this ->contentRepositoryRegistry ->get (
51- $ documentNode ->subgraphIdentity ->contentRepositoryId
52- );
53- $ nodeAddressFactory = NodeAddressFactory::create ($ contentRepository );
54- $ nodeAddress = $ nodeAddressFactory ->createFromNode ($ documentNode );
55-
56- $ uriBuilder = new UriBuilder ();
57- $ uriBuilder ->setRequest ($ this ->getControllerContext ()->getRequest ());
58- $ uriBuilder
59- ->setCreateAbsoluteUri ($ absolute )
60- ->setFormat ($ format ?: 'html ' );
61-
62- return NodeUriBuilder::fromUriBuilder ($ uriBuilder )
63- ->uriFor ($ nodeAddress );
48+ return $ this ->nodeUriBuilderFactory ->forActionRequest ($ this ->getControllerContext ()->getRequest ())
49+ ->uriFor (NodeAddress::fromNode ($ documentNode ));
6450 }
6551
6652 public function getResourceUri (string $ packageKey , string $ resourcePath ): UriInterface
0 commit comments