Skip to content

Commit

Permalink
Merge pull request api-platform#740 from dunglas/scrut
Browse files Browse the repository at this point in the history
Improve Swagger's DocumentationNormalizer
  • Loading branch information
dunglas committed Sep 9, 2016
2 parents 2739e2e + b96dd65 commit 9705260
Show file tree
Hide file tree
Showing 3 changed files with 116 additions and 201 deletions.
2 changes: 1 addition & 1 deletion src/Action/ExceptionAction.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public function __construct(SerializerInterface $serializer, array $errorFormats
{
$this->serializer = $serializer;
$this->errorFormats = $errorFormats;
$this->exceptionToStatus = array_merge(self::DEFAULT_EXCEPTION_TO_STATUS, $exceptionToStatus);
$this->exceptionToStatus = self::DEFAULT_EXCEPTION_TO_STATUS + $exceptionToStatus;
}

/**
Expand Down
10 changes: 7 additions & 3 deletions src/Bridge/NelmioApiDoc/Parser/ApiPlatformParser.php
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,11 @@ private function parseResource(ResourceMetadata $resourceMetadata, string $resou
}

if (isset($attributes['denormalization_context']['groups'])) {
$options['serializer_groups'] = isset($options['serializer_groups']) ? array_merge($options['serializer_groups'], $attributes['denormalization_context']['groups']) : $options['serializer_groups'];
if (isset($options['serializer_groups'])) {
$options['serializer_groups'] += $attributes['denormalization_context']['groups'];
} else {
$options['serializer_groups'] = $attributes['denormalization_context']['groups'];
}
}

return $this->getPropertyMetadata($resourceMetadata, $resourceClass, $io, $visited, $options);
Expand All @@ -129,8 +133,8 @@ private function parseResource(ResourceMetadata $resourceMetadata, string $resou
private function getGroupsForItemAndCollectionOperation(ResourceMetadata $resourceMetadata, string $operationName) : array
{
$operation = [
'denormalization_context' => array_merge($resourceMetadata->getItemOperationAttribute($operationName, 'denormalization_context', []), $resourceMetadata->getCollectionOperationAttribute($operationName, 'denormalization_context', [])),
'normalization_context' => array_merge($resourceMetadata->getItemOperationAttribute($operationName, 'normalization_context', []), $resourceMetadata->getCollectionOperationAttribute($operationName, 'normalization_context', [])),
'denormalization_context' => $resourceMetadata->getItemOperationAttribute($operationName, 'denormalization_context', []) + $resourceMetadata->getCollectionOperationAttribute($operationName, 'denormalization_context', []),
'normalization_context' => $resourceMetadata->getItemOperationAttribute($operationName, 'normalization_context', []) + $resourceMetadata->getCollectionOperationAttribute($operationName, 'normalization_context', []),
];

$options = [
Expand Down
Loading

0 comments on commit 9705260

Please sign in to comment.