Skip to content

Commit 1a201de

Browse files
authored
Merge pull request #740 from dunglas/scrut
Improve Swagger's DocumentationNormalizer
2 parents 4a96dc4 + 572e532 commit 1a201de

File tree

3 files changed

+116
-201
lines changed

3 files changed

+116
-201
lines changed

src/Action/ExceptionAction.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public function __construct(SerializerInterface $serializer, array $errorFormats
4040
{
4141
$this->serializer = $serializer;
4242
$this->errorFormats = $errorFormats;
43-
$this->exceptionToStatus = array_merge(self::DEFAULT_EXCEPTION_TO_STATUS, $exceptionToStatus);
43+
$this->exceptionToStatus = self::DEFAULT_EXCEPTION_TO_STATUS + $exceptionToStatus;
4444
}
4545

4646
/**

src/Bridge/NelmioApiDoc/Parser/ApiPlatformParser.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,11 @@ private function parseResource(ResourceMetadata $resourceMetadata, string $resou
112112
}
113113

114114
if (isset($attributes['denormalization_context']['groups'])) {
115-
$options['serializer_groups'] = isset($options['serializer_groups']) ? array_merge($options['serializer_groups'], $attributes['denormalization_context']['groups']) : $options['serializer_groups'];
115+
if (isset($options['serializer_groups'])) {
116+
$options['serializer_groups'] += $attributes['denormalization_context']['groups'];
117+
} else {
118+
$options['serializer_groups'] = $attributes['denormalization_context']['groups'];
119+
}
116120
}
117121

118122
return $this->getPropertyMetadata($resourceMetadata, $resourceClass, $io, $visited, $options);
@@ -129,8 +133,8 @@ private function parseResource(ResourceMetadata $resourceMetadata, string $resou
129133
private function getGroupsForItemAndCollectionOperation(ResourceMetadata $resourceMetadata, string $operationName) : array
130134
{
131135
$operation = [
132-
'denormalization_context' => array_merge($resourceMetadata->getItemOperationAttribute($operationName, 'denormalization_context', []), $resourceMetadata->getCollectionOperationAttribute($operationName, 'denormalization_context', [])),
133-
'normalization_context' => array_merge($resourceMetadata->getItemOperationAttribute($operationName, 'normalization_context', []), $resourceMetadata->getCollectionOperationAttribute($operationName, 'normalization_context', [])),
136+
'denormalization_context' => $resourceMetadata->getItemOperationAttribute($operationName, 'denormalization_context', []) + $resourceMetadata->getCollectionOperationAttribute($operationName, 'denormalization_context', []),
137+
'normalization_context' => $resourceMetadata->getItemOperationAttribute($operationName, 'normalization_context', []) + $resourceMetadata->getCollectionOperationAttribute($operationName, 'normalization_context', []),
134138
];
135139

136140
$options = [

0 commit comments

Comments
 (0)