Skip to content

Commit dd04e76

Browse files
authored
feat(symfony): use previous data if available (#4776)
1 parent 01910f1 commit dd04e76

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

src/Symfony/EventListener/WriteListener.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public function onKernelView(ViewEvent $event): void
8181
return;
8282
}
8383

84-
$context = ['operation' => $operation, 'resource_class' => $attributes['resource_class']];
84+
$context = ['operation' => $operation, 'resource_class' => $attributes['resource_class'], 'previous_data' => $attributes['previous_data'] ?? null];
8585
try {
8686
$uriVariables = $this->getOperationUriVariables($operation, $request->attributes->all(), $attributes['resource_class']);
8787
} catch (InvalidIdentifierException $e) {

tests/Symfony/EventListener/WriteListenerTest.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -167,18 +167,19 @@ public function testOnKernelViewWithControllerResultAndRemove()
167167
public function testOnKernelViewWithSafeMethod()
168168
{
169169
$operationResource = new OperationResource(1, 'foo');
170+
$operation = (new Get())->withName('_api_OperationResource_get');
170171

171-
$this->processorProphecy->process($operationResource, Argument::type(Operation::class), [], Argument::type('array'))->willReturn($operationResource)->shouldNotBeCalled();
172+
$this->processorProphecy->process($operationResource, Argument::type(Operation::class), [], ['operation' => $operation, 'resource_class' => OperationResource::class, 'previous_data' => 'test'])->willReturn($operationResource)->shouldNotBeCalled();
172173

173174
$this->iriConverterProphecy->getIriFromResource($operationResource)->shouldNotBeCalled();
174175

175176
$operationResourceMetadata = new ResourceMetadataCollection(OperationResource::class, [(new ApiResource())->withOperations(new Operations([
176-
'_api_OperationResource_get' => (new Get())->withName('_api_OperationResource_get'),
177+
'_api_OperationResource_get' => $operation,
177178
]))]);
178179

179180
$this->resourceMetadataCollectionFactory->create(OperationResource::class)->willReturn($operationResourceMetadata);
180181

181-
$request = new Request([], [], ['_api_resource_class' => OperationResource::class, '_api_operation_name' => '_api_OperationResource_get']);
182+
$request = new Request([], [], ['_api_resource_class' => OperationResource::class, '_api_operation_name' => '_api_OperationResource_get', 'previous_data' => 'test']);
182183
$request->setMethod('GET');
183184

184185
$event = new ViewEvent(

0 commit comments

Comments
 (0)