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 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);
|
||||
|
@ -14,6 +14,7 @@ namespace Nelmio\ApiDocBundle\Tests\Functional\Controller;
|
||||
use FOS\RestBundle\Controller\Annotations\QueryParam;
|
||||
use FOS\RestBundle\Controller\Annotations\RequestParam;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
use Symfony\Component\Validator\Constraints\DateTime;
|
||||
use Symfony\Component\Validator\Constraints\IsTrue;
|
||||
use Symfony\Component\Validator\Constraints\Regex;
|
||||
|
||||
@ -28,6 +29,8 @@ class FOSRestController
|
||||
* @QueryParam(name="mapped", map=true)
|
||||
* @RequestParam(name="Barraa", key="bar", requirements="\d+")
|
||||
* @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()
|
||||
{
|
||||
|
@ -50,6 +50,12 @@ class FOSRestTest extends WebTestCase
|
||||
$this->assertEquals(OA\UNDEFINED, $bazProperty->pattern);
|
||||
$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
|
||||
$this->assertNotHasParameter('_format', 'path', $operation);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user