Skip to content

Commit dad2e3e

Browse files
authored
Merge branch 'master' into patch-1
2 parents acefa80 + 8300794 commit dad2e3e

24 files changed

Lines changed: 601 additions & 19 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1119,6 +1119,8 @@ protected ImmutableMap.Builder<String, Mustache.Lambda> addMustacheLambdas() {
11191119
}
11201120

11211121
protected interface DataTypeAssigner {
1122+
void setIsVoid(Boolean isVoid);
1123+
11221124
void setReturnType(String returnType);
11231125

11241126
void setReturnContainer(String returnContainer);
@@ -1131,6 +1133,7 @@ protected interface DataTypeAssigner {
11311133
protected void doDataTypeAssignment(final String returnType, DataTypeAssigner dataTypeAssigner) {
11321134
if (returnType == null) {
11331135
dataTypeAssigner.setReturnType("Unit");
1136+
dataTypeAssigner.setIsVoid(true);
11341137
} else if (returnType.startsWith("kotlin.collections.List")) {
11351138
int end = returnType.lastIndexOf(">");
11361139
if (end > 0) {

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinServerCodegen.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,11 @@ public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<Mo
418418
}
419419

420420
doDataTypeAssignment(resp.dataType, new DataTypeAssigner() {
421+
@Override
422+
public void setIsVoid(Boolean isVoid) {
423+
resp.isVoid = isVoid;
424+
}
425+
421426
@Override
422427
public void setReturnType(final String returnType) {
423428
resp.dataType = returnType;
@@ -432,6 +437,10 @@ public void setReturnContainer(final String returnContainer) {
432437
}
433438

434439
doDataTypeAssignment(operation.returnType, new DataTypeAssigner() {
440+
@Override
441+
public void setIsVoid(Boolean isVoid) {
442+
operation.isVoid = isVoid;
443+
}
435444

436445
@Override
437446
public void setReturnType(final String returnType) {

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinSpringServerCodegen.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -880,6 +880,11 @@ public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<Mo
880880
resp.baseType = getNonMutableContainerTypeIfNeeded(resp.baseType);
881881

882882
doDataTypeAssignment(resp.dataType, new DataTypeAssigner() {
883+
@Override
884+
public void setIsVoid(Boolean isVoid) {
885+
resp.isVoid = isVoid;
886+
}
887+
883888
@Override
884889
public void setReturnType(final String returnType) {
885890
resp.dataType = returnType;
@@ -904,6 +909,10 @@ public void setReturnContainer(final String returnContainer) {
904909
}
905910

906911
doDataTypeAssignment(operation.returnType, new DataTypeAssigner() {
912+
@Override
913+
public void setIsVoid(Boolean isVoid) {
914+
operation.isVoid = isVoid;
915+
}
907916

908917
@Override
909918
public void setReturnType(final String returnType) {

modules/openapi-generator/src/main/resources/ruby-client/partial_anyof_module.mustache

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@
2929
openapi_any_of.each do |klass|
3030
begin
3131
next if klass == :AnyType # "nullable: true"
32-
typed_data = find_and_cast_into_type(klass, data)
33-
return typed_data if typed_data
32+
return find_and_cast_into_type(klass, data)
3433
rescue # rescue all errors so we keep iterating even if the current item lookup raises
3534
end
3635
end

modules/openapi-generator/src/main/resources/ruby-client/partial_oneof_module.mustache

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,7 @@
6969
openapi_one_of.each do |klass|
7070
begin
7171
next if klass == :AnyType # "nullable: true"
72-
typed_data = find_and_cast_into_type(klass, data)
73-
return typed_data if typed_data
72+
return find_and_cast_into_type(klass, data)
7473
rescue # rescue all errors so we keep iterating even if the current item lookup raises
7574
end
7675
end

modules/openapi-generator/src/test/resources/3_0/ruby/petstore-with-fake-endpoints-models-for-testing.yaml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2162,3 +2162,33 @@ components:
21622162
type: string
21632163
type_:
21642164
type: string
2165+
OneOfPrimitiveTypes:
2166+
oneOf:
2167+
- type: string
2168+
- type: number
2169+
- type: integer
2170+
- type: boolean
2171+
- type: string
2172+
format: date
2173+
- type: string
2174+
format: date-time
2175+
- type: array
2176+
items:
2177+
type: string
2178+
- type: array
2179+
items:
2180+
type: number
2181+
- type: array
2182+
items:
2183+
type: integer
2184+
- type: array
2185+
items:
2186+
type: boolean
2187+
- type: array
2188+
items:
2189+
type: string
2190+
format: date
2191+
- type: array
2192+
items:
2193+
type: string
2194+
format: date-time

samples/client/petstore/ruby-httpx/.openapi-generator/FILES

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ docs/Name.md
4848
docs/NullableClass.md
4949
docs/NumberOnly.md
5050
docs/ObjectWithDeprecatedFields.md
51+
docs/OneOfPrimitiveTypes.md
5152
docs/Order.md
5253
docs/OuterComposite.md
5354
docs/OuterEnum.md
@@ -118,6 +119,7 @@ lib/petstore/models/name.rb
118119
lib/petstore/models/nullable_class.rb
119120
lib/petstore/models/number_only.rb
120121
lib/petstore/models/object_with_deprecated_fields.rb
122+
lib/petstore/models/one_of_primitive_types.rb
121123
lib/petstore/models/order.rb
122124
lib/petstore/models/outer_composite.rb
123125
lib/petstore/models/outer_enum.rb

samples/client/petstore/ruby-httpx/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ Class | Method | HTTP request | Description
164164
- [Petstore::NullableClass](docs/NullableClass.md)
165165
- [Petstore::NumberOnly](docs/NumberOnly.md)
166166
- [Petstore::ObjectWithDeprecatedFields](docs/ObjectWithDeprecatedFields.md)
167+
- [Petstore::OneOfPrimitiveTypes](docs/OneOfPrimitiveTypes.md)
167168
- [Petstore::Order](docs/Order.md)
168169
- [Petstore::OuterComposite](docs/OuterComposite.md)
169170
- [Petstore::OuterEnum](docs/OuterEnum.md)
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Petstore::OneOfPrimitiveTypes
2+
3+
## Class instance methods
4+
5+
### `openapi_one_of`
6+
7+
Returns the list of classes defined in oneOf.
8+
9+
#### Example
10+
11+
```ruby
12+
require 'petstore'
13+
14+
Petstore::OneOfPrimitiveTypes.openapi_one_of
15+
# =>
16+
# [
17+
# :'Array<Boolean>',
18+
# :'Array<Date>',
19+
# :'Array<Float>',
20+
# :'Array<Integer>',
21+
# :'Array<String>',
22+
# :'Array<Time>',
23+
# :'Boolean',
24+
# :'Date',
25+
# :'Float',
26+
# :'Integer',
27+
# :'String',
28+
# :'Time'
29+
# ]
30+
```
31+
32+
### build
33+
34+
Find the appropriate object from the `openapi_one_of` list and casts the data into it.
35+
36+
#### Example
37+
38+
```ruby
39+
require 'petstore'
40+
41+
Petstore::OneOfPrimitiveTypes.build(data)
42+
# => #<Array<Boolean>:0x00007fdd4aab02a0>
43+
44+
Petstore::OneOfPrimitiveTypes.build(data_that_doesnt_match)
45+
# => nil
46+
```
47+
48+
#### Parameters
49+
50+
| Name | Type | Description |
51+
| ---- | ---- | ----------- |
52+
| **data** | **Mixed** | data to be matched against the list of oneOf items |
53+
54+
#### Return type
55+
56+
- `Array<Boolean>`
57+
- `Array<Date>`
58+
- `Array<Float>`
59+
- `Array<Integer>`
60+
- `Array<String>`
61+
- `Array<Time>`
62+
- `Boolean`
63+
- `Date`
64+
- `Float`
65+
- `Integer`
66+
- `String`
67+
- `Time`
68+
- `nil` (if no type matches)
69+

samples/client/petstore/ruby-httpx/lib/petstore.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
require 'petstore/models/nullable_class'
5454
require 'petstore/models/number_only'
5555
require 'petstore/models/object_with_deprecated_fields'
56+
require 'petstore/models/one_of_primitive_types'
5657
require 'petstore/models/order'
5758
require 'petstore/models/outer_composite'
5859
require 'petstore/models/outer_enum'

0 commit comments

Comments
 (0)