Skip to content

Commit 502c0e2

Browse files
authored
fix(symfony): skip argument resolver when context is not api platform (#7579)
fixes #7574
1 parent 49d80c8 commit 502c0e2

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/Symfony/Bundle/ArgumentResolver/PayloadArgumentResolver.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,11 @@ public function resolve(Request $request, ArgumentMetadata $argument): iterable
7171
private function getExpectedInputClass(Request $request): ?string
7272
{
7373
$operation = $this->initializeOperation($request);
74-
if (Request::METHOD_DELETE === $request->getMethod() || $request->isMethodSafe() || !($operation?->canDeserialize() ?? true)) {
74+
if (!$operation) {
75+
return null;
76+
}
77+
78+
if (Request::METHOD_DELETE === $request->getMethod() || $request->isMethodSafe() || !($operation->canDeserialize() ?? true)) {
7579
return null;
7680
}
7781

tests/Symfony/Bundle/ArgumentResolver/PayloadArgumentResolverTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,10 @@ public static function provideUnsupportedRequests(): iterable
166166

167167
yield 'request without attributes' => [self::createRequest('PUT', [])];
168168

169+
yield 'request without API Platform operation attributes' => [self::createRequest('POST', [
170+
'data' => new ResourceImplementation(),
171+
])];
172+
169173
yield 'request on operation with deserialization disabled' => [self::createRequest('PUT', [
170174
'_api_resource_class' => ResourceImplementation::class,
171175
'_api_operation_name' => 'update_no_deserialize',

0 commit comments

Comments
 (0)