|
6 | 6 |
|
7 | 7 | use ApiPlatform\Api\IriConverterInterface;
|
8 | 8 | use ApiPlatform\Exception\InvalidArgumentException;
|
9 |
| -use ApiPlatform\Exception\OperationNotFoundException; |
10 | 9 | use ApiPlatform\Exception\ResourceClassNotFoundException;
|
11 | 10 | use ApiPlatform\Metadata\Resource\Factory\ResourceMetadataCollectionFactoryInterface;
|
12 |
| -use Psr\Log\LoggerInterface; |
13 | 11 | use RZ\Roadiz\Core\AbstractEntities\PersistableInterface;
|
14 | 12 | use RZ\Roadiz\CoreBundle\Api\DataTransformer\WebResponseDataTransformerInterface;
|
15 | 13 | use RZ\Roadiz\CoreBundle\Api\Model\WebResponseInterface;
|
|
25 | 23 | final class GetWebResponseByPathController extends AbstractController
|
26 | 24 | {
|
27 | 25 | public function __construct(
|
| 26 | + private readonly ResourceMetadataCollectionFactoryInterface $resourceMetadataCollectionFactory, |
28 | 27 | private readonly PathResolverInterface $pathResolver,
|
29 | 28 | private readonly WebResponseDataTransformerInterface $webResponseDataTransformer,
|
30 | 29 | private readonly IriConverterInterface $iriConverter,
|
@@ -54,12 +53,13 @@ public function __invoke(?Request $request): ?WebResponseInterface
|
54 | 53 | */
|
55 | 54 | $resourceClass = get_class($resource);
|
56 | 55 | $operationName = $this->apiResourceOperationNameGenerator->generateGetByPath($resourceClass);
|
57 |
| - |
| 56 | + $operation = $this->resourceMetadataCollectionFactory->create($resourceClass)->getOperation($operationName); |
| 57 | + $request->attributes->set('_api_operation', $operation); |
58 | 58 | $request->attributes->set('_api_operation_name', $operationName);
|
59 | 59 | $request->attributes->set('_api_resource_class', $resourceClass);
|
60 | 60 | $request->attributes->set('_stateless', true);
|
61 | 61 | return $this->webResponseDataTransformer->transform($resource, WebResponseInterface::class);
|
62 |
| - } catch (ResourceNotFoundException $exception) { |
| 62 | + } catch (ResourceNotFoundException|ResourceClassNotFoundException $exception) { |
63 | 63 | throw $this->createNotFoundException($exception->getMessage(), $exception);
|
64 | 64 | }
|
65 | 65 | }
|
|
0 commit comments