Skip to content

Commit

Permalink
Review
Browse files Browse the repository at this point in the history
  • Loading branch information
dunglas committed Apr 21, 2020
1 parent 01eacf5 commit 37a2787
Show file tree
Hide file tree
Showing 5 changed files with 7 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ public function getConfigTreeBuilder()
->arrayNode('validator')
->addDefaultsIfNotSet()
->children()
->variableNode('serialize_payload_fields')->defaultNull()->info('Enable the serialization of payload fields when a validation error is thrown.')->end()
->variableNode('serialize_payload_fields')->defaultValue([])->info('Set to null to serializer all payload fields when a validation error is thrown, or set the fields you want to include explicitly.')->end()
->end()
->end()
->arrayNode('eager_loading')
Expand Down
4 changes: 2 additions & 2 deletions src/Serializer/AbstractConstraintViolationListNormalizer.php
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,11 @@ protected function getMessagesAndViolations(ConstraintViolationListInterface $co

$constraint = $violation->getConstraint();
if (
null !== $this->serializePayloadFields &&
[] !== $this->serializePayloadFields &&
$constraint &&
$constraint->payload &&
// If some fields are whitelisted, only them are added
$payloadFields = [] === $this->serializePayloadFields ? $constraint->payload : array_intersect_key($constraint->payload, $this->serializePayloadFields)
$payloadFields = null === $this->serializePayloadFields ? $constraint->payload : array_intersect_key($constraint->payload, $this->serializePayloadFields)
) {
$violationData['payload'] = $payloadFields;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1112,7 +1112,7 @@ private function getBaseContainerBuilderProphecy(array $doctrineIntegrationsToLo
'api_platform.graphql.graphiql.enabled' => true,
'api_platform.graphql.graphql_playground.enabled' => true,
'api_platform.resource_class_directories' => Argument::type('array'),
'api_platform.validator.serialize_payload_fields' => null,
'api_platform.validator.serialize_payload_fields' => [],
'api_platform.elasticsearch.enabled' => false,
];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ private function runDefaultConfigTests(array $doctrineIntegrationsToLoad = ['orm
'default_operation_path_resolver' => 'api_platform.operation_path_resolver.underscore',
'path_segment_name_generator' => 'api_platform.path_segment_name_generator.underscore',
'validator' => [
'serialize_payload_fields' => null,
'serialize_payload_fields' => [],
],
'name_converter' => null,
'enable_fos_user' => true,
Expand Down
4 changes: 2 additions & 2 deletions tests/Hydra/Serializer/ConstraintViolationNormalizerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ public function testNormalize(?array $fields, array $result)
public function payloadFieldsProvider(): iterable
{
yield [['severity', 'anotherField1'], ['severity' => 'warning']];
yield [[], ['severity' => 'warning', 'anotherField2' => 'aValue']];
yield [null, []];
yield [null, ['severity' => 'warning', 'anotherField2' => 'aValue']];
yield [[], []];
}
}

0 comments on commit 37a2787

Please sign in to comment.