Merge pull request #868 from dpcat237/502_hide-requirement-when-empty

#502 hide requirement when empty
This commit is contained in:
William Durand 2016-06-13 10:00:49 +02:00 committed by GitHub
commit e6ea85157e
4 changed files with 36 additions and 1 deletions

View File

@ -56,11 +56,15 @@ class FosRestHandler implements HandlerInterface
'description' => $annot->description,
'default' => $annot->default,
));
} else {
} elseif ($annot->requirements !== null) {
$annotation->addFilter($annot->name, array(
'requirement' => $this->handleRequirements($annot->requirements).((property_exists($annot, 'map') ? $annot->map : $annot->array) ? '[]' : ''),
'description' => $annot->description,
));
} else {
$annotation->addFilter($annot->name, array(
'description' => $annot->description,
));
}
}
}

View File

@ -203,4 +203,22 @@ class FosRestHandlerTest extends WebTestCase
$this->assertArrayHasKey('requirement', $filters['param1']);
$this->assertEquals('NotNull, NotBlank', $filters['param1']['requirement']);
}
public function testWithRequirementParamNotSet()
{
$container = $this->getContainer();
$extractor = $container->get('nelmio_api_doc.extractor.api_doc_extractor');
$annotation = $extractor->get('Nelmio\ApiDocBundle\Tests\Fixtures\Controller\TestController::zActionWithRequirementParamNotSet', 'test_route_31');
$this->assertNotNull($annotation);
$filters = $annotation->getFilters();
$this->assertCount(1, $filters);
$this->assertArrayHasKey('param1', $filters);
$filter = $filters['param1'];
$this->assertArrayNotHasKey('requirement', $filter);
$this->assertArrayHasKey('description', $filter);
$this->assertEquals($filter['description'], 'Param1 description.');
}
}

View File

@ -414,4 +414,12 @@ class TestController
public function routeWithQueryParamPlainArrayRequirementsAction()
{
}
/**
* @ApiDoc()
* @QueryParam(name="param1", description="Param1 description.")
*/
public function zActionWithRequirementParamNotSet()
{
}
}

View File

@ -248,3 +248,8 @@ test_route_30:
path: /z-query-param-plain-array-requirements
methods: [GET]
defaults: { _controller: NelmioApiDocTestBundle:Test:routeWithQueryParamPlainArrayRequirementsAction }
test_route_31:
path: /z-query-requirement-param-not-set
methods: [GET]
defaults: { _controller: NelmioApiDocTestBundle:Test:zActionWithRequirementParamNotSet }