Add support for 'c' format

This commit is contained in:
Thomas Lallement 2021-03-16 11:05:00 +01:00
parent 56d4b78bf1
commit a72588861f
3 changed files with 5 additions and 1 deletions

View File

@ -107,7 +107,7 @@ final class FosRestDescriber implements RouteDescriberInterface
if ($requirements instanceof Constraint && !$requirements instanceof Regex) {
if ($requirements instanceof DateTime) {
// As defined per RFC3339
if ('Y-m-d\TH:i:s' === $requirements->format) {
if ('Y-m-d\TH:i:s' === $requirements->format || 'c' === $requirements->format) {
return 'date-time';
} elseif ('Y-m-d' === $requirements->format) {
return 'date';

View File

@ -30,6 +30,7 @@ class FOSRestController
* @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="datetimeAlt", requirements=@DateTime("c"))
* @RequestParam(name="date", requirements=@DateTime("Y-m-d"))
*/
public function fosrestAction()

View File

@ -53,6 +53,9 @@ class FOSRestTest extends WebTestCase
$dateTimeProperty = $this->getProperty($bodySchema, 'datetime');
$this->assertEquals('date-time', $dateTimeProperty->format);
$dateTimeAltProperty = $this->getProperty($bodySchema, 'datetimeAlt');
$this->assertEquals('date-time', $dateTimeAltProperty->format);
$dateProperty = $this->getProperty($bodySchema, 'date');
$this->assertEquals('date', $dateProperty->format);