Skip to content

Commit 58ccc8d

Browse files
author
roadiz-ci
committed
feat: Override _api_operation attribute as well when using GetWebResponseByPathController
1 parent 412d3b5 commit 58ccc8d

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/Api/Controller/GetWebResponseByPathController.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,8 @@
66

77
use ApiPlatform\Api\IriConverterInterface;
88
use ApiPlatform\Exception\InvalidArgumentException;
9-
use ApiPlatform\Exception\OperationNotFoundException;
109
use ApiPlatform\Exception\ResourceClassNotFoundException;
1110
use ApiPlatform\Metadata\Resource\Factory\ResourceMetadataCollectionFactoryInterface;
12-
use Psr\Log\LoggerInterface;
1311
use RZ\Roadiz\Core\AbstractEntities\PersistableInterface;
1412
use RZ\Roadiz\CoreBundle\Api\DataTransformer\WebResponseDataTransformerInterface;
1513
use RZ\Roadiz\CoreBundle\Api\Model\WebResponseInterface;
@@ -25,6 +23,7 @@
2523
final class GetWebResponseByPathController extends AbstractController
2624
{
2725
public function __construct(
26+
private readonly ResourceMetadataCollectionFactoryInterface $resourceMetadataCollectionFactory,
2827
private readonly PathResolverInterface $pathResolver,
2928
private readonly WebResponseDataTransformerInterface $webResponseDataTransformer,
3029
private readonly IriConverterInterface $iriConverter,
@@ -54,12 +53,13 @@ public function __invoke(?Request $request): ?WebResponseInterface
5453
*/
5554
$resourceClass = get_class($resource);
5655
$operationName = $this->apiResourceOperationNameGenerator->generateGetByPath($resourceClass);
57-
56+
$operation = $this->resourceMetadataCollectionFactory->create($resourceClass)->getOperation($operationName);
57+
$request->attributes->set('_api_operation', $operation);
5858
$request->attributes->set('_api_operation_name', $operationName);
5959
$request->attributes->set('_api_resource_class', $resourceClass);
6060
$request->attributes->set('_stateless', true);
6161
return $this->webResponseDataTransformer->transform($resource, WebResponseInterface::class);
62-
} catch (ResourceNotFoundException $exception) {
62+
} catch (ResourceNotFoundException|ResourceClassNotFoundException $exception) {
6363
throw $this->createNotFoundException($exception->getMessage(), $exception);
6464
}
6565
}

0 commit comments

Comments
 (0)