fix(php): should not check enum value if not unspecified and optional (broken since #4886) (#5357)

Signed-off-by: Vincent Giersch <vincent@giersch.fr>
This commit is contained in:
Vincent Giersch 2017-04-10 17:21:14 +02:00 committed by wing328
parent 99f0ab496b
commit aef98f464e
3 changed files with 3 additions and 3 deletions

View File

@ -52,7 +52,7 @@ class ObjectSerializer
foreach ($data::swaggerTypes() as $property => $swaggerType) { foreach ($data::swaggerTypes() as $property => $swaggerType) {
$getter = $data::getters()[$property]; $getter = $data::getters()[$property];
$value = $data->$getter(); $value = $data->$getter();
if (method_exists($swaggerType, 'getAllowableEnumValues') if ($value !== null && method_exists($swaggerType, 'getAllowableEnumValues')
&& !in_array($value, $swaggerType::getAllowableEnumValues())) { && !in_array($value, $swaggerType::getAllowableEnumValues())) {
$imploded = implode("', '", $swaggerType::getAllowableEnumValues()); $imploded = implode("', '", $swaggerType::getAllowableEnumValues());
throw new \InvalidArgumentException("Invalid value for enum '$swaggerType', must be one of: '$imploded'"); throw new \InvalidArgumentException("Invalid value for enum '$swaggerType', must be one of: '$imploded'");

View File

@ -62,7 +62,7 @@ class ObjectSerializer
foreach ($data::swaggerTypes() as $property => $swaggerType) { foreach ($data::swaggerTypes() as $property => $swaggerType) {
$getter = $data::getters()[$property]; $getter = $data::getters()[$property];
$value = $data->$getter(); $value = $data->$getter();
if (method_exists($swaggerType, 'getAllowableEnumValues') if ($value !== null && method_exists($swaggerType, 'getAllowableEnumValues')
&& !in_array($value, $swaggerType::getAllowableEnumValues())) { && !in_array($value, $swaggerType::getAllowableEnumValues())) {
$imploded = implode("', '", $swaggerType::getAllowableEnumValues()); $imploded = implode("', '", $swaggerType::getAllowableEnumValues());
throw new \InvalidArgumentException("Invalid value for enum '$swaggerType', must be one of: '$imploded'"); throw new \InvalidArgumentException("Invalid value for enum '$swaggerType', must be one of: '$imploded'");

View File

@ -62,7 +62,7 @@ class ObjectSerializer
foreach ($data::swaggerTypes() as $property => $swaggerType) { foreach ($data::swaggerTypes() as $property => $swaggerType) {
$getter = $data::getters()[$property]; $getter = $data::getters()[$property];
$value = $data->$getter(); $value = $data->$getter();
if (method_exists($swaggerType, 'getAllowableEnumValues') if ($value !== null && method_exists($swaggerType, 'getAllowableEnumValues')
&& !in_array($value, $swaggerType::getAllowableEnumValues())) { && !in_array($value, $swaggerType::getAllowableEnumValues())) {
$imploded = implode("', '", $swaggerType::getAllowableEnumValues()); $imploded = implode("', '", $swaggerType::getAllowableEnumValues());
throw new \InvalidArgumentException("Invalid value for enum '$swaggerType', must be one of: '$imploded'"); throw new \InvalidArgumentException("Invalid value for enum '$swaggerType', must be one of: '$imploded'");