fix parent class check in ObjectSerializer (#16558)

This commit is contained in:
Julian Vennen 2023-09-12 04:25:28 +02:00 committed by GitHub
parent 8b15d4820e
commit cd0fde41f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 4 deletions

View File

@ -79,7 +79,7 @@ class ObjectSerializer
$getter = $data::getters()[$property];
$value = $data->$getter();
if ($value !== null && !in_array($openAPIType, [{{&primitives}}], true)) {
if ($openAPIType instanceof \BackedEnum) {
if (is_sublass_of($openAPIType, '\BackedEnum')) {
$data = $openAPIType::tryFrom($data);
if ($data === null) {
$imploded = implode("', '", array_map(fn($case) => $case->value, $openAPIType::cases()));
@ -486,7 +486,7 @@ class ObjectSerializer
}
if ($class instanceof \BackedEnum) {
if (is_subclass_of($class, '\BackedEnum')) {
$data = $class::tryFrom($data);
if ($data === null) {
$imploded = implode("', '", array_map(fn($case) => $case->value, $class::cases()));

View File

@ -88,7 +88,7 @@ class ObjectSerializer
$getter = $data::getters()[$property];
$value = $data->$getter();
if ($value !== null && !in_array($openAPIType, ['\DateTime', '\SplFileObject', 'array', 'bool', 'boolean', 'byte', 'float', 'int', 'integer', 'mixed', 'number', 'object', 'string', 'void'], true)) {
if ($openAPIType instanceof \BackedEnum) {
if (is_sublass_of($openAPIType, '\BackedEnum')) {
$data = $openAPIType::tryFrom($data);
if ($data === null) {
$imploded = implode("', '", array_map(fn($case) => $case->value, $openAPIType::cases()));
@ -495,7 +495,7 @@ class ObjectSerializer
}
if ($class instanceof \BackedEnum) {
if (is_subclass_of($class, '\BackedEnum')) {
$data = $class::tryFrom($data);
if ($data === null) {
$imploded = implode("', '", array_map(fn($case) => $case->value, $class::cases()));