Skip to content

Commit

Permalink
[PHP-Symfony] fixes validation of date-time parameter
Browse files Browse the repository at this point in the history
This fixes parts of #14930.

Without this patch a parameter declared as date-time
is validated against Symfony's "DateTime" constraint,
which always fails. Because this constraint expects
a string with format "Y-m-d H:i:s".
It fails because the generated code performs the check
after the deserialization, so the variable checked is not
a string anymore.

Besides this, even if we performed that validation on the
string, that would not work well because OpenApi
specification expects date-time to conform to RFC 3339
and that "Y-m-d H:i:s" would reject RFC 3339 compliant dates.

With this change we ensure that the string provided by the
web user could be parsed by PHP to DateTime, which solves both issues.

(Note however that it means that it now accepts more formats than just
RFC 3339 compliant ones for those parameters (it would accept all formats
accepted by PHP DateTime). That being said it's compliant with the guideline
""be conservative in what you send, be liberal in what you accept")
  • Loading branch information
gturri committed Mar 12, 2023
1 parent 140d941 commit d21b8d3
Showing 1 changed file with 1 addition and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
$asserts[] = new Assert\Date();
{{/isDate}}
{{#isDateTime}}
$asserts[] = new Assert\DateTime();
$asserts[] = new Assert\Type("DateTime");
{{/isDateTime}}
{{^isDate}}
{{^isDateTime}}
Expand Down

0 comments on commit d21b8d3

Please sign in to comment.