This commit is contained in:
Alex 2017-09-24 07:47:40 +01:00 committed by wing328
parent 639f88918a
commit ac99fe6b2d
2 changed files with 6 additions and 2 deletions

View File

@ -55,7 +55,9 @@ 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 ($value !== null && method_exists($swaggerType, 'getAllowableEnumValues') if ($value !== null
&& !in_array($swaggerType, [{{&primitives}}], true)
&& 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

@ -64,7 +64,9 @@ 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 ($value !== null && method_exists($swaggerType, 'getAllowableEnumValues') if ($value !== null
&& !in_array($swaggerType, ['DateTime', 'bool', 'boolean', 'byte', 'double', 'float', 'int', 'integer', 'mixed', 'number', 'object', 'string', 'void'], true)
&& 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'");