Skip to content

Commit 498d309

Browse files
committed
revert introduction of metadata factory
1 parent aca9945 commit 498d309

File tree

4 files changed

+7
-26
lines changed

4 files changed

+7
-26
lines changed

src/State/Provider/DeserializeProvider.php

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,8 @@
1313

1414
namespace ApiPlatform\State\Provider;
1515

16-
use ApiPlatform\Metadata\Exception\OperationNotFoundException;
1716
use ApiPlatform\Metadata\HttpOperation;
1817
use ApiPlatform\Metadata\Operation;
19-
use ApiPlatform\Metadata\Resource\Factory\ResourceMetadataCollectionFactoryInterface;
2018
use ApiPlatform\State\ProviderInterface;
2119
use ApiPlatform\State\SerializerContextBuilderInterface;
2220
use ApiPlatform\Validator\Exception\ValidationException;
@@ -38,7 +36,6 @@ public function __construct(
3836
private readonly ?ProviderInterface $decorated,
3937
private readonly SerializerInterface $serializer,
4038
private readonly SerializerContextBuilderInterface $serializerContextBuilder,
41-
private readonly ResourceMetadataCollectionFactoryInterface $resourceMetadataCollectionFactory,
4239
private ?TranslatorInterface $translator = null,
4340
) {
4441
if (null === $this->translator) {
@@ -127,16 +124,8 @@ private function normalizeExpectedTypes(?array $expectedTypes = null): array
127124
$normalizedType = $expectedType;
128125

129126
if (class_exists($expectedType) || interface_exists($expectedType)) {
130-
try {
131-
$normalizedType = $this->resourceMetadataCollectionFactory->create($expectedType)->getOperation()->getShortName();
132-
} catch (OperationNotFoundException) {
133-
// Do nothing
134-
}
135-
136-
if (null === $normalizedType) {
137-
$classReflection = new \ReflectionClass($expectedType);
138-
$normalizedType = $classReflection->getShortName();
139-
}
127+
$classReflection = new \ReflectionClass($expectedType);
128+
$normalizedType = $classReflection->getShortName();
140129
}
141130

142131
$normalizedTypes[] = $normalizedType;

src/State/Tests/Provider/DeserializeProviderTest.php

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515

1616
use ApiPlatform\Metadata\Get;
1717
use ApiPlatform\Metadata\Post;
18-
use ApiPlatform\Metadata\Resource\Factory\ResourceMetadataCollectionFactoryInterface;
1918
use ApiPlatform\State\Provider\DeserializeProvider;
2019
use ApiPlatform\State\ProviderInterface;
2120
use ApiPlatform\State\SerializerContextBuilderInterface;
@@ -39,9 +38,8 @@ public function testDeserialize(): void
3938
$serializerContextBuilder->expects($this->once())->method('createFromRequest')->willReturn($serializerContext);
4039
$serializer = $this->createMock(SerializerInterface::class);
4140
$serializer->expects($this->once())->method('deserialize')->with('test', 'Test', 'format', ['uri_variables' => ['id' => 1], AbstractNormalizer::OBJECT_TO_POPULATE => $objectToPopulate] + $serializerContext)->willReturn(new \stdClass());
42-
$resourceMetadataCollectionFactoryInterface = $this->createMock(ResourceMetadataCollectionFactoryInterface::class);
4341

44-
$provider = new DeserializeProvider($decorated, $serializer, $serializerContextBuilder, $resourceMetadataCollectionFactoryInterface);
42+
$provider = new DeserializeProvider($decorated, $serializer, $serializerContextBuilder);
4543
$request = new Request(content: 'test');
4644
$request->headers->set('CONTENT_TYPE', 'ok');
4745
$request->attributes->set('input_format', 'format');
@@ -57,9 +55,8 @@ public function testDeserializeNoContentType(): void
5755

5856
$serializerContextBuilder = $this->createMock(SerializerContextBuilderInterface::class);
5957
$serializer = $this->createMock(SerializerInterface::class);
60-
$resourceMetadataCollectionFactoryInterface = $this->createMock(ResourceMetadataCollectionFactoryInterface::class);
6158

62-
$provider = new DeserializeProvider($decorated, $serializer, $serializerContextBuilder, $resourceMetadataCollectionFactoryInterface);
59+
$provider = new DeserializeProvider($decorated, $serializer, $serializerContextBuilder);
6360
$request = new Request(content: 'test');
6461
$request->attributes->set('input_format', 'format');
6562
$provider->provide($operation, ['id' => 1], ['request' => $request]);
@@ -74,9 +71,8 @@ public function testDeserializeNoInput(): void
7471

7572
$serializerContextBuilder = $this->createMock(SerializerContextBuilderInterface::class);
7673
$serializer = $this->createMock(SerializerInterface::class);
77-
$resourceMetadataCollectionFactoryInterface = $this->createMock(ResourceMetadataCollectionFactoryInterface::class);
7874

79-
$provider = new DeserializeProvider($decorated, $serializer, $serializerContextBuilder, $resourceMetadataCollectionFactoryInterface);
75+
$provider = new DeserializeProvider($decorated, $serializer, $serializerContextBuilder);
8076
$request = new Request(content: 'test');
8177
$request->headers->set('CONTENT_TYPE', 'ok');
8278
$provider->provide($operation, ['id' => 1], ['request' => $request]);
@@ -93,9 +89,8 @@ public function testDeserializeWithContextClass(): void
9389
$serializerContextBuilder->expects($this->once())->method('createFromRequest')->willReturn($serializerContext);
9490
$serializer = $this->createMock(SerializerInterface::class);
9591
$serializer->expects($this->once())->method('deserialize')->with('test', 'Test', 'format', ['uri_variables' => ['id' => 1]] + $serializerContext)->willReturn(new \stdClass());
96-
$resourceMetadataCollectionFactoryInterface = $this->createMock(ResourceMetadataCollectionFactoryInterface::class);
9792

98-
$provider = new DeserializeProvider($decorated, $serializer, $serializerContextBuilder, $resourceMetadataCollectionFactoryInterface);
93+
$provider = new DeserializeProvider($decorated, $serializer, $serializerContextBuilder);
9994
$request = new Request(content: 'test');
10095
$request->headers->set('CONTENT_TYPE', 'ok');
10196
$request->attributes->set('input_format', 'format');
@@ -110,9 +105,8 @@ public function testRequestWithEmptyContentType(): void
110105

111106
$serializer = $this->createStub(SerializerInterface::class);
112107
$serializerContextBuilder = $this->createStub(SerializerContextBuilderInterface::class);
113-
$resourceMetadataCollectionFactoryInterface = $this->createMock(ResourceMetadataCollectionFactoryInterface::class);
114108

115-
$provider = new DeserializeProvider($decorated, $serializer, $serializerContextBuilder, $resourceMetadataCollectionFactoryInterface);
109+
$provider = new DeserializeProvider($decorated, $serializer, $serializerContextBuilder);
116110

117111
// in Symfony (at least up to 7.0.2, 6.4.2, 6.3.11, 5.4.34), a request
118112
// without a content-type and content-length header will result in the

src/Symfony/Bundle/Resources/config/state/provider.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
<argument type="service" id="api_platform.state_provider.deserialize.inner" />
2323
<argument type="service" id="api_platform.serializer" />
2424
<argument type="service" id="api_platform.serializer.context_builder" />
25-
<argument type="service" id="api_platform.metadata.resource.metadata_collection_factory" />
2625
<argument type="service" id="translator" on-invalid="null" />
2726
</service>
2827

src/Symfony/Bundle/Resources/config/symfony/events.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
<argument>null</argument>
3838
<argument type="service" id="api_platform.serializer" />
3939
<argument type="service" id="api_platform.serializer.context_builder" />
40-
<argument type="service" id="api_platform.metadata.resource.metadata_collection_factory" />
4140
<argument type="service" id="translator" on-invalid="null" />
4241
</service>
4342

0 commit comments

Comments
 (0)