Skip to content

Commit 1821a05

Browse files
committed
Merge 3.1 into 3.2
2 parents 547c4e6 + f340fcc commit 1821a05

File tree

7 files changed

+21
-6
lines changed

7 files changed

+21
-6
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,13 @@ Notes:
157157
* [92a81f024](https://github.com/api-platform/core/commit/92a81f024541054b9322e7457b75c721261e14e0) feat(graphql): allow to disable the introspection query (#5711)
158158
* [d793ffb92](https://github.com/api-platform/core/commit/d793ffb9228a21655ee35f0b90a959f93281a4cf) feat: union/intersect types (#5470)
159159

160+
## v3.1.22
161+
162+
### Bug fixes
163+
164+
* [157faafd5](https://github.com/api-platform/core/commit/157faafd54db75214b39fc8c7c6a97a171513c67) fix(state): wrong variable name
165+
* [b2d9ce40c](https://github.com/api-platform/core/commit/b2d9ce40cf27ee9743aafff4f163e195ae47b880) fix(serializer): pass $context to IriConverter (#5908)
166+
160167
## v3.1.21
161168

162169
### Bug fixes

src/Doctrine/EventListener/PurgeHttpCacheListener.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,11 @@ private function gatherRelationTags(EntityManagerInterface $em, object $entity):
126126
{
127127
$associationMappings = $em->getClassMetadata(ClassUtils::getClass($entity))->getAssociationMappings();
128128
foreach (array_keys($associationMappings) as $property) {
129+
if (
130+
\array_key_exists('targetEntity', $associationMappings[$property])
131+
&& !$this->resourceClassResolver->isResourceClass($associationMappings[$property]['targetEntity'])) {
132+
return;
133+
}
129134
if ($this->propertyAccessor->isReadable($entity, $property)) {
130135
$this->addTagsFor($this->propertyAccessor->getValue($entity, $property));
131136
}

src/Serializer/AbstractItemNormalizer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -789,7 +789,7 @@ protected function normalizeRelation(ApiProperty $propertyMetadata, ?object $rel
789789
return $normalizedRelatedObject;
790790
}
791791

792-
$iri = $this->iriConverter->getIriFromResource($relatedObject);
792+
$iri = $this->iriConverter->getIriFromResource(resource: $relatedObject, context: $context);
793793

794794
if (isset($context['resources'])) {
795795
$context['resources'][$iri] = $iri;

src/State/UriVariablesResolverTrait.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,14 @@ private function getOperationUriVariables(HttpOperation $operation = null, array
5353

5454
foreach ($currentIdentifiers as $key => $value) {
5555
$identifiers[$key] = $value;
56-
$uriVariableMap[$key] = $uriVariableDefinition;
56+
$uriVariablesMap[$key] = $uriVariableDefinition;
5757
}
5858

5959
continue;
6060
}
6161

6262
$identifiers[$parameterName] = $parameters[$parameterName];
63-
$uriVariableMap[$parameterName] = $uriVariableDefinition;
63+
$uriVariablesMap[$parameterName] = $uriVariableDefinition;
6464
}
6565

6666
if ($this->uriVariablesConverter) {

tests/Doctrine/EventListener/PurgeHttpCacheListenerTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,13 +201,16 @@ public function testNotAResourceClass(): void
201201
// @phpstan-ignore-next-line
202202
$dummyClassMetadata->associationMappings = [
203203
'notAResource' => [],
204+
'collectionOfNotAResource' => ['targetEntity' => NotAResource::class],
204205
];
205206
$emProphecy->getClassMetadata(ContainNonResource::class)->willReturn($dummyClassMetadata);
206207
$eventArgs = new OnFlushEventArgs($emProphecy->reveal());
207208

208209
$propertyAccessorProphecy = $this->prophesize(PropertyAccessorInterface::class);
209210
$propertyAccessorProphecy->isReadable(Argument::type(ContainNonResource::class), 'notAResource')->willReturn(true);
211+
$propertyAccessorProphecy->isReadable(Argument::type(ContainNonResource::class), 'collectionOfNotAResource')->shouldNotBeCalled();
210212
$propertyAccessorProphecy->getValue(Argument::type(ContainNonResource::class), 'notAResource')->shouldBeCalled()->willReturn($nonResource);
213+
$propertyAccessorProphecy->getValue(Argument::type(ContainNonResource::class), 'collectionOfNotAResource')->shouldNotBeCalled();
211214

212215
$listener = new PurgeHttpCacheListener($purgerProphecy->reveal(), $iriConverterProphecy->reveal(), $resourceClassResolverProphecy->reveal(), $propertyAccessorProphecy->reveal());
213216
$listener->onFlush($eventArgs);

tests/Hal/Serializer/ItemNormalizerTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ public function testNormalize(): void
132132

133133
$iriConverterProphecy = $this->prophesize(IriConverterInterface::class);
134134
$iriConverterProphecy->getIriFromResource($dummy, Argument::cetera())->willReturn('/dummies/1');
135-
$iriConverterProphecy->getIriFromResource($relatedDummy)->willReturn('/related-dummies/2');
135+
$iriConverterProphecy->getIriFromResource($relatedDummy, Argument::cetera())->willReturn('/related-dummies/2');
136136

137137
$resourceClassResolverProphecy = $this->prophesize(ResourceClassResolverInterface::class);
138138
$resourceClassResolverProphecy->isResourceClass(RelatedDummy::class)->willReturn(true);
@@ -260,7 +260,7 @@ public function testNormalizeWithoutCache(): void
260260

261261
$iriConverterProphecy = $this->prophesize(IriConverterInterface::class);
262262
$iriConverterProphecy->getIriFromResource($dummy, Argument::cetera())->willReturn('/dummies/1');
263-
$iriConverterProphecy->getIriFromResource($relatedDummy)->willReturn('/related-dummies/2');
263+
$iriConverterProphecy->getIriFromResource($relatedDummy, Argument::cetera())->willReturn('/related-dummies/2');
264264

265265
$resourceClassResolverProphecy = $this->prophesize(ResourceClassResolverInterface::class);
266266
$resourceClassResolverProphecy->getResourceClass($dummy, null)->willReturn(Dummy::class);

tests/Symfony/Bundle/Twig/ApiPlatformProfilerPanelTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ public function testProfilerGeneralLayoutNotResourceClass(): void
115115
$this->assertSame(200, $client->getResponse()->getStatusCode());
116116

117117
// Check that the Api-Platform sidebar link is active
118-
$this->assertNotEmpty($menuLink = $crawler->filter('a[href$="panel=api_platform.data_collector.request"]'));
118+
$this->assertNotEmpty($menuLink = $crawler->filter('a[href*="panel=api_platform.data_collector.request"]'));
119119
$this->assertNotEmpty($menuLink->filter('.disabled'), 'The sidebar menu should be disabled.');
120120

121121
$metrics = $crawler->filter('.metrics');

0 commit comments

Comments
 (0)