Skip to content

Commit 9c19fa1

Browse files
author
helyakin
authored
fix(metadata): add class key in payload argument resolver (#5067)
* fix: add class key in payload argument resolver * add null if everything else goes wrong
1 parent 41bbad9 commit 9c19fa1

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

src/Symfony/Bundle/ArgumentResolver/PayloadArgumentResolver.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ private function getExpectedInputClass(Request $request): ?string
7373

7474
$context = $this->serializationContextBuilder->createFromRequest($request, false, RequestAttributesExtractor::extractAttributes($request));
7575

76-
return $context['input'] ?? $context['resource_class'];
76+
return $context['input']['class'] ?? $context['resource_class'] ?? null;
7777
}
7878
}
7979

tests/Symfony/Bundle/ArgumentResolver/PayloadArgumentResolverTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ private function createArgumentResolver(): PayloadArgumentResolver
234234
(new ApiResource())->withShortName('ResourceImplementation')->withOperations(new Operations([
235235
'update' => new Put(),
236236
'update_no_deserialize' => (new Put())->withDeserialize(false),
237-
'update_with_dto' => (new Put())->withInput(['class' => NotResource::class]),
237+
'update_with_dto' => (new Put())->withInput(['class' => NotResource::class, 'name' => 'NotResource']),
238238
'create' => new Post(),
239239
])),
240240
]));
@@ -255,7 +255,7 @@ private function createArgumentResolver(): PayloadArgumentResolver
255255
];
256256

257257
if ('update_with_dto' === $request->attributes->get('_api_operation_name')) {
258-
$context['input'] = NotResource::class;
258+
$context['input'] = ['class' => NotResource::class, 'name' => 'NotResource'];
259259
} else {
260260
$context['input'] = null;
261261
}

0 commit comments

Comments
 (0)