mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-03-12 10:36:09 +03:00
Code improvements and add unit test
This commit is contained in:
parent
f2c75ebc9d
commit
7f9b00d620
@ -107,7 +107,12 @@ final class FosRestDescriber implements RouteDescriberInterface
|
|||||||
if ($requirements instanceof Constraint && !$requirements instanceof Regex) {
|
if ($requirements instanceof Constraint && !$requirements instanceof Regex) {
|
||||||
|
|
||||||
if ($requirements instanceof DateTime) {
|
if ($requirements instanceof DateTime) {
|
||||||
return 'date-time';
|
// As defined per RFC3339
|
||||||
|
if ($requirements->format === 'Y-m-d\TH:i:s') {
|
||||||
|
return 'date-time';
|
||||||
|
} else if ($requirements->format === 'Y-m-d') {
|
||||||
|
return 'date';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$reflectionClass = new \ReflectionClass($requirements);
|
$reflectionClass = new \ReflectionClass($requirements);
|
||||||
|
@ -14,6 +14,7 @@ namespace Nelmio\ApiDocBundle\Tests\Functional\Controller;
|
|||||||
use FOS\RestBundle\Controller\Annotations\QueryParam;
|
use FOS\RestBundle\Controller\Annotations\QueryParam;
|
||||||
use FOS\RestBundle\Controller\Annotations\RequestParam;
|
use FOS\RestBundle\Controller\Annotations\RequestParam;
|
||||||
use Symfony\Component\Routing\Annotation\Route;
|
use Symfony\Component\Routing\Annotation\Route;
|
||||||
|
use Symfony\Component\Validator\Constraints\DateTime;
|
||||||
use Symfony\Component\Validator\Constraints\IsTrue;
|
use Symfony\Component\Validator\Constraints\IsTrue;
|
||||||
use Symfony\Component\Validator\Constraints\Regex;
|
use Symfony\Component\Validator\Constraints\Regex;
|
||||||
|
|
||||||
@ -28,6 +29,8 @@ class FOSRestController
|
|||||||
* @QueryParam(name="mapped", map=true)
|
* @QueryParam(name="mapped", map=true)
|
||||||
* @RequestParam(name="Barraa", key="bar", requirements="\d+")
|
* @RequestParam(name="Barraa", key="bar", requirements="\d+")
|
||||||
* @RequestParam(name="baz", requirements=@IsTrue)
|
* @RequestParam(name="baz", requirements=@IsTrue)
|
||||||
|
* @RequestParam(name="datetime", requirements=@DateTime("Y-m-d\TH:i:s"))
|
||||||
|
* @RequestParam(name="date", requirements=@DateTime("Y-m-d"))
|
||||||
*/
|
*/
|
||||||
public function fosrestAction()
|
public function fosrestAction()
|
||||||
{
|
{
|
||||||
|
@ -50,6 +50,12 @@ class FOSRestTest extends WebTestCase
|
|||||||
$this->assertEquals(OA\UNDEFINED, $bazProperty->pattern);
|
$this->assertEquals(OA\UNDEFINED, $bazProperty->pattern);
|
||||||
$this->assertEquals('IsTrue', $bazProperty->format);
|
$this->assertEquals('IsTrue', $bazProperty->format);
|
||||||
|
|
||||||
|
$barProperty = $this->getProperty($bodySchema, 'datetime');
|
||||||
|
$this->assertEquals('date-time', $barProperty->format);
|
||||||
|
|
||||||
|
$barProperty = $this->getProperty($bodySchema, 'date');
|
||||||
|
$this->assertEquals('date', $barProperty->format);
|
||||||
|
|
||||||
// The _format path attribute should be removed
|
// The _format path attribute should be removed
|
||||||
$this->assertNotHasParameter('_format', 'path', $operation);
|
$this->assertNotHasParameter('_format', 'path', $operation);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user