Skip to content

Commit 5e0d695

Browse files
committed
fixed datatype error on arrays
1 parent 8526e0e commit 5e0d695

File tree

4 files changed

+49
-5
lines changed

4 files changed

+49
-5
lines changed

src/main/java/io/swagger/codegen/v3/generators/DefaultCodegenConfig.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2414,6 +2414,8 @@ public CodegenParameter fromParameter(Parameter parameter, Set<String> imports)
24142414
inner = new StringSchema().description("//TODO automatically added by swagger-codegen");
24152415
arraySchema.setItems(inner);
24162416

2417+
} else if (isObjectSchema(inner)) {
2418+
codegenParameter.getVendorExtensions().put(CodegenConstants.HAS_INNER_OBJECT_NAME, Boolean.TRUE);
24172419
}
24182420

24192421
collectionFormat = getCollectionFormat(parameter);
@@ -2666,6 +2668,8 @@ else if (schema instanceof ArraySchema) {
26662668
if (inner == null) {
26672669
inner = new StringSchema().description("//TODO automatically added by swagger-codegen");
26682670
arraySchema.setItems(inner);
2671+
} else if (isObjectSchema(inner)) {
2672+
codegenParameter.getVendorExtensions().put(CodegenConstants.HAS_INNER_OBJECT_NAME, Boolean.TRUE);
26692673
}
26702674

26712675
CodegenProperty codegenProperty = fromProperty("property", schema);

src/main/java/io/swagger/codegen/v3/generators/typescript/TypeScriptFetchClientCodegen.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import java.io.File;
44
import java.text.SimpleDateFormat;
55
import java.util.Date;
6+
import java.util.Map;
7+
import java.util.Set;
68

79
import io.swagger.codegen.v3.CliOption;
810
import io.swagger.codegen.v3.CodegenConstants;
@@ -15,6 +17,8 @@
1517
import io.swagger.v3.oas.models.media.MapSchema;
1618
import io.swagger.v3.oas.models.media.ObjectSchema;
1719
import io.swagger.v3.oas.models.media.Schema;
20+
import io.swagger.v3.oas.models.parameters.Parameter;
21+
import io.swagger.v3.oas.models.parameters.RequestBody;
1822
import io.swagger.v3.parser.util.SchemaTypeUtil;
1923

2024
import org.apache.commons.lang3.StringUtils;
@@ -116,6 +120,27 @@ public String getTypeDeclaration(Schema propertySchema) {
116120
}
117121
}
118122

123+
@Override
124+
public CodegenParameter fromParameter(Parameter parameter, Set<String> imports) {
125+
final CodegenParameter codegenParameter = super.fromParameter(parameter, imports);
126+
if (parameter.getSchema() != null && isObjectSchema(parameter.getSchema())) {
127+
codegenParameter.getVendorExtensions().put(CodegenConstants.IS_OBJECT_EXT_NAME, Boolean.TRUE);
128+
}
129+
return codegenParameter;
130+
}
131+
132+
@Override
133+
public CodegenParameter fromRequestBody(RequestBody body, String name, Schema schema, Map<String, Schema> schemas, Set<String> imports) {
134+
final CodegenParameter codegenParameter = super.fromRequestBody(body, name, schema, schemas, imports);
135+
if (schema == null) {
136+
schema = getSchemaFromBody(body);
137+
}
138+
if (schema != null && isObjectSchema(schema)) {
139+
codegenParameter.getVendorExtensions().put(CodegenConstants.IS_OBJECT_EXT_NAME, Boolean.TRUE);
140+
}
141+
return codegenParameter;
142+
}
143+
119144
@Override
120145
public String getSchemaType(Schema schema) {
121146
String swaggerType = super.getSchemaType(schema);

src/main/resources/handlebars/JavaSpring/api.mustache

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,4 +135,5 @@ public interface {{classname}} {
135135
{{/contents}}
136136
{{/operation}}
137137
}
138-
{{/operations}}
138+
{{/operations}}
139+

src/main/resources/handlebars/typescript-fetch/api_test.mustache

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,26 @@ describe("{{classname}}", () => {
1515
});
1616

1717
{{#operation}}
18+
{{#contents}}
19+
{{#@first}}
1820
test("{{operationId}}", () => {
19-
{{#allParams}}
20-
const {{{paramName}}}: {{^isPrimitiveType}}api.{{/isPrimitiveType}}{{{dataType}}} = {{>api_test_default_value}}
21-
{{/allParams}}
22-
return expect(instance.{{operationId}}({{#allParams}}{{{paramName}}}, {{/allParams}}{})).resolves.toBe(null)
21+
{{#parameters}}
22+
{{#isObject}}
23+
const {{{paramName}}}: api.{{{dataType}}} = {{>api_test_default_value}}
24+
{{/isObject}}
25+
{{^isObject}}
26+
{{#hasInnerObject}}
27+
const {{{paramName}}}: Array<api.{{{baseType}}}> = {{>api_test_default_value}}
28+
{{/hasInnerObject}}
29+
{{^hasInnerObject}}
30+
const {{{paramName}}}: {{{dataType}}} = {{>api_test_default_value}}
31+
{{/hasInnerObject}}
32+
{{/isObject}}
33+
{{/parameters}}
34+
return expect(instance.{{operationId}}({{#parameters}}{{{paramName}}}, {{/parameters}}{})).resolves.toBe(null)
2335
})
36+
{{/@first}}
37+
{{/contents}}
2438
{{/operation}}
2539
})
2640

0 commit comments

Comments
 (0)