From a72588861f15b0c269105655f6fefb80a6b3a5ef Mon Sep 17 00:00:00 2001 From: Thomas Lallement Date: Tue, 16 Mar 2021 11:05:00 +0100 Subject: [PATCH] Add support for 'c' format --- RouteDescriber/FosRestDescriber.php | 2 +- Tests/Functional/Controller/FOSRestController.php | 1 + Tests/Functional/FOSRestTest.php | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/RouteDescriber/FosRestDescriber.php b/RouteDescriber/FosRestDescriber.php index d800e0b..fd92f84 100644 --- a/RouteDescriber/FosRestDescriber.php +++ b/RouteDescriber/FosRestDescriber.php @@ -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'; diff --git a/Tests/Functional/Controller/FOSRestController.php b/Tests/Functional/Controller/FOSRestController.php index ab2c66c..2857f28 100644 --- a/Tests/Functional/Controller/FOSRestController.php +++ b/Tests/Functional/Controller/FOSRestController.php @@ -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() diff --git a/Tests/Functional/FOSRestTest.php b/Tests/Functional/FOSRestTest.php index 739b0f3..8024011 100644 --- a/Tests/Functional/FOSRestTest.php +++ b/Tests/Functional/FOSRestTest.php @@ -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);