Fix Open API doc for DateTime requirements

When using the following requierement:

```
@Rest\QueryParam(name="updatedFrom", strict=true, nullable=true, requirements=@Constraints\DateTime("Y-m-d\TH:i:s"))
```

According to the OpenAPI 3.0 documentation https://swagger.io/specification/, we should have "format": "date-time" rather than "format": "DateTime" in the generated doc
This commit is contained in:
Thomas Lallement 2021-03-11 19:06:17 +01:00 committed by GitHub
parent 8f646b8484
commit f2c75ebc9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -18,6 +18,7 @@ use Nelmio\ApiDocBundle\OpenApiPhp\Util;
use OpenApi\Annotations as OA;
use Symfony\Component\Routing\Route;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\Constraints\DateTime;
use Symfony\Component\Validator\Constraints\Regex;
final class FosRestDescriber implements RouteDescriberInterface
@ -104,6 +105,11 @@ final class FosRestDescriber implements RouteDescriberInterface
private function getFormat($requirements)
{
if ($requirements instanceof Constraint && !$requirements instanceof Regex) {
if ($requirements instanceof DateTime) {
return 'date-time';
}
$reflectionClass = new \ReflectionClass($requirements);
return $reflectionClass->getShortName();