Skip to content

Commit f98641d

Browse files
authored
Merge pull request #2226 from bnowak/fix-2177-follow-up-with-oas-3.1v-support
fix: invalid nullable enums with OAS 3.1 version
2 parents b306289 + 32de004 commit f98641d

6 files changed

+57
-62
lines changed

src/PropertyDescriber/ObjectPropertyDescriber.php

+1-6
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,7 @@ public function describe(array $types, OA\Schema $property, array $groups = null
3939
if ($types[0]->isNullable()) {
4040
$weakContext = Util::createWeakContext($property->_context);
4141
$schemas = [new OA\Schema(['ref' => $this->modelRegistry->register(new Model($type, $groups, null, $context)), '_context' => $weakContext])];
42-
43-
if (function_exists('enum_exists') && enum_exists($type->getClassName())) {
44-
$property->allOf = $schemas;
45-
} else {
46-
$property->oneOf = $schemas;
47-
}
42+
$property->oneOf = $schemas;
4843

4944
return;
5045
}

tests/Functional/Fixtures/Controller2209.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
},
5151
"nullableType": {
5252
"nullable": true,
53-
"allOf": [
53+
"oneOf": [
5454
{
5555
"$ref": "#/components/schemas/ArticleType81"
5656
}

tests/Functional/Fixtures/MapQueryStringCleanupComponents.json

+24-24
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"required": false,
4848
"schema": {
4949
"nullable": true,
50-
"allOf": [
50+
"oneOf": [
5151
{
5252
"$ref": "#/components/schemas/ArticleType81"
5353
}
@@ -102,7 +102,7 @@
102102
"required": false,
103103
"schema": {
104104
"nullable": true,
105-
"allOf": [
105+
"oneOf": [
106106
{
107107
"$ref": "#/components/schemas/ArticleType81"
108108
}
@@ -157,7 +157,7 @@
157157
"required": false,
158158
"schema": {
159159
"nullable": true,
160-
"allOf": [
160+
"oneOf": [
161161
{
162162
"$ref": "#/components/schemas/ArticleType81"
163163
}
@@ -212,7 +212,7 @@
212212
"required": false,
213213
"schema": {
214214
"nullable": true,
215-
"allOf": [
215+
"oneOf": [
216216
{
217217
"$ref": "#/components/schemas/ArticleType81"
218218
}
@@ -267,7 +267,7 @@
267267
"required": false,
268268
"schema": {
269269
"nullable": true,
270-
"allOf": [
270+
"oneOf": [
271271
{
272272
"$ref": "#/components/schemas/ArticleType81"
273273
}
@@ -322,7 +322,7 @@
322322
"required": false,
323323
"schema": {
324324
"nullable": true,
325-
"allOf": [
325+
"oneOf": [
326326
{
327327
"$ref": "#/components/schemas/ArticleType81"
328328
}
@@ -377,7 +377,7 @@
377377
"required": false,
378378
"schema": {
379379
"nullable": true,
380-
"allOf": [
380+
"oneOf": [
381381
{
382382
"$ref": "#/components/schemas/ArticleType81"
383383
}
@@ -432,7 +432,7 @@
432432
"required": false,
433433
"schema": {
434434
"nullable": true,
435-
"allOf": [
435+
"oneOf": [
436436
{
437437
"$ref": "#/components/schemas/ArticleType81"
438438
}
@@ -489,7 +489,7 @@
489489
"required": false,
490490
"schema": {
491491
"nullable": true,
492-
"allOf": [
492+
"oneOf": [
493493
{
494494
"$ref": "#/components/schemas/ArticleType81"
495495
}
@@ -544,7 +544,7 @@
544544
"required": false,
545545
"schema": {
546546
"nullable": true,
547-
"allOf": [
547+
"oneOf": [
548548
{
549549
"$ref": "#/components/schemas/ArticleType81"
550550
}
@@ -599,7 +599,7 @@
599599
"required": false,
600600
"schema": {
601601
"nullable": true,
602-
"allOf": [
602+
"oneOf": [
603603
{
604604
"$ref": "#/components/schemas/ArticleType81"
605605
}
@@ -654,7 +654,7 @@
654654
"required": false,
655655
"schema": {
656656
"nullable": true,
657-
"allOf": [
657+
"oneOf": [
658658
{
659659
"$ref": "#/components/schemas/ArticleType81"
660660
}
@@ -709,7 +709,7 @@
709709
"required": false,
710710
"schema": {
711711
"nullable": true,
712-
"allOf": [
712+
"oneOf": [
713713
{
714714
"$ref": "#/components/schemas/ArticleType81"
715715
}
@@ -764,7 +764,7 @@
764764
"required": false,
765765
"schema": {
766766
"nullable": true,
767-
"allOf": [
767+
"oneOf": [
768768
{
769769
"$ref": "#/components/schemas/ArticleType81"
770770
}
@@ -819,7 +819,7 @@
819819
"required": false,
820820
"schema": {
821821
"nullable": true,
822-
"allOf": [
822+
"oneOf": [
823823
{
824824
"$ref": "#/components/schemas/ArticleType81"
825825
}
@@ -874,7 +874,7 @@
874874
"required": false,
875875
"schema": {
876876
"nullable": true,
877-
"allOf": [
877+
"oneOf": [
878878
{
879879
"$ref": "#/components/schemas/ArticleType81"
880880
}
@@ -1253,7 +1253,7 @@
12531253
"required": false,
12541254
"schema": {
12551255
"nullable": true,
1256-
"allOf": [
1256+
"oneOf": [
12571257
{
12581258
"$ref": "#/components/schemas/ArticleType81"
12591259
}
@@ -1308,7 +1308,7 @@
13081308
"required": false,
13091309
"schema": {
13101310
"nullable": true,
1311-
"allOf": [
1311+
"oneOf": [
13121312
{
13131313
"$ref": "#/components/schemas/ArticleType81"
13141314
}
@@ -1363,7 +1363,7 @@
13631363
"required": false,
13641364
"schema": {
13651365
"nullable": true,
1366-
"allOf": [
1366+
"oneOf": [
13671367
{
13681368
"$ref": "#/components/schemas/ArticleType81"
13691369
}
@@ -1418,7 +1418,7 @@
14181418
"required": false,
14191419
"schema": {
14201420
"nullable": true,
1421-
"allOf": [
1421+
"oneOf": [
14221422
{
14231423
"$ref": "#/components/schemas/ArticleType81"
14241424
}
@@ -1473,7 +1473,7 @@
14731473
"required": false,
14741474
"schema": {
14751475
"nullable": true,
1476-
"allOf": [
1476+
"oneOf": [
14771477
{
14781478
"$ref": "#/components/schemas/ArticleType81"
14791479
}
@@ -1528,7 +1528,7 @@
15281528
"required": false,
15291529
"schema": {
15301530
"nullable": true,
1531-
"allOf": [
1531+
"oneOf": [
15321532
{
15331533
"$ref": "#/components/schemas/ArticleType81"
15341534
}
@@ -1583,7 +1583,7 @@
15831583
"required": false,
15841584
"schema": {
15851585
"nullable": true,
1586-
"allOf": [
1586+
"oneOf": [
15871587
{
15881588
"$ref": "#/components/schemas/ArticleType81"
15891589
}
@@ -1638,7 +1638,7 @@
16381638
"required": false,
16391639
"schema": {
16401640
"nullable": true,
1641-
"allOf": [
1641+
"oneOf": [
16421642
{
16431643
"$ref": "#/components/schemas/ArticleType81"
16441644
}

0 commit comments

Comments
 (0)