Compare commits

...

1 Commits

Author SHA1 Message Date
William Cheng
bb51faa1f7 unalias body parameters 2018-12-11 00:23:12 +08:00

View File

@ -4304,7 +4304,7 @@ public class DefaultCodegen implements CodegenConfig {
body, Map<String, Schema> schemas, Set<String> imports) { body, Map<String, Schema> schemas, Set<String> imports) {
List<CodegenParameter> parameters = new ArrayList<CodegenParameter>(); List<CodegenParameter> parameters = new ArrayList<CodegenParameter>();
LOGGER.debug("debugging fromRequestBodyToFormParameters= " + body); LOGGER.debug("debugging fromRequestBodyToFormParameters= " + body);
Schema schema = ModelUtils.getSchemaFromRequestBody(body); Schema schema = ModelUtils.unaliasSchema(globalSchemas, ModelUtils.getSchemaFromRequestBody(body));
if (StringUtils.isNotBlank(schema.get$ref())) { if (StringUtils.isNotBlank(schema.get$ref())) {
schema = schemas.get(ModelUtils.getSimpleRef(schema.get$ref())); schema = schemas.get(ModelUtils.getSimpleRef(schema.get$ref()));
} }
@ -4319,7 +4319,7 @@ public class DefaultCodegen implements CodegenConfig {
// array of schema // array of schema
if (ModelUtils.isArraySchema(s)) { if (ModelUtils.isArraySchema(s)) {
final ArraySchema arraySchema = (ArraySchema) s; final ArraySchema arraySchema = (ArraySchema) s;
Schema inner = arraySchema.getItems(); Schema inner = ModelUtils.unaliasSchema(globalSchemas, (arraySchema.getItems()));
if (inner == null) { if (inner == null) {
LOGGER.warn("warning! No inner type supplied for array parameter \"" + s.getName() + "\", using String"); LOGGER.warn("warning! No inner type supplied for array parameter \"" + s.getName() + "\", using String");
inner = new StringSchema().description("//TODO automatically added by openapi-generator due to missing iner type definition in the spec"); inner = new StringSchema().description("//TODO automatically added by openapi-generator due to missing iner type definition in the spec");
@ -4471,14 +4471,14 @@ public class DefaultCodegen implements CodegenConfig {
String name = null; String name = null;
LOGGER.debug("Request body = " + body); LOGGER.debug("Request body = " + body);
Schema schema = ModelUtils.getSchemaFromRequestBody(body); Schema schema = ModelUtils.unaliasSchema(globalSchemas, ModelUtils.getSchemaFromRequestBody(body));
if (StringUtils.isNotBlank(schema.get$ref())) { if (StringUtils.isNotBlank(schema.get$ref())) {
name = ModelUtils.getSimpleRef(schema.get$ref()); name = ModelUtils.getSimpleRef(schema.get$ref());
schema = schemas.get(name); schema = schemas.get(name);
} }
if (ModelUtils.isMapSchema(schema)) { if (ModelUtils.isMapSchema(schema)) {
Schema inner = ModelUtils.getAdditionalProperties(schema); Schema inner = ModelUtils.unaliasSchema(globalSchemas, ModelUtils.getAdditionalProperties(schema));
if (inner == null) { if (inner == null) {
inner = new StringSchema().description("//TODO automatically added by openapi-generator"); inner = new StringSchema().description("//TODO automatically added by openapi-generator");
schema.setAdditionalProperties(inner); schema.setAdditionalProperties(inner);
@ -4506,7 +4506,7 @@ public class DefaultCodegen implements CodegenConfig {
setParameterNullable(codegenParameter, codegenProperty); setParameterNullable(codegenParameter, codegenProperty);
} else if (ModelUtils.isArraySchema(schema)) { } else if (ModelUtils.isArraySchema(schema)) {
final ArraySchema arraySchema = (ArraySchema) schema; final ArraySchema arraySchema = (ArraySchema) schema;
Schema inner = arraySchema.getItems(); Schema inner = ModelUtils.unaliasSchema(globalSchemas, arraySchema.getItems());
if (inner == null) { if (inner == null) {
inner = new StringSchema().description("//TODO automatically added by openapi-generator"); inner = new StringSchema().description("//TODO automatically added by openapi-generator");
arraySchema.setItems(inner); arraySchema.setItems(inner);