diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ApexClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ApexClientCodegen.java index 2306d7009ca..f352e3928bf 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ApexClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ApexClientCodegen.java @@ -191,24 +191,144 @@ public class ApexClientCodegen extends AbstractJavaCodegen { @Override public void setParameterExampleValue(CodegenParameter p) { - if (Boolean.TRUE.equals(p.isLong)) { - p.example = "2147483648L"; - } else if (Boolean.TRUE.equals(p.isFile)) { - p.example = "Blob.valueOf('Sample text file\\nContents')"; - } else if (Boolean.TRUE.equals(p.isDate)) { - p.example = "Date.newInstance(1960, 2, 17)"; - } else if (Boolean.TRUE.equals(p.isDateTime)) { - p.example = "Datetime.newInstanceGmt(2013, 11, 12, 3, 3, 3)"; - } else if (Boolean.TRUE.equals(p.isListContainer)) { - p.example = "new " + p.dataType + "{" + p.items.example + "}"; - } else if (Boolean.TRUE.equals(p.isMapContainer)) { - p.example = "new " + p.dataType + "{" + p.items.example + "}"; - } else if (Boolean.TRUE.equals(p.isString)) { - p.example = "'" + p.example + "'"; - } else if ("".equals(p.example) || p.example == null) { - // Get an example object from the generated model - p.example = p.dataType + ".getExample()"; + String example; + + if (p.defaultValue == null) { + example = p.example; + } else { + example = p.defaultValue; } + + String type = p.baseType; + if (type == null) { + type = p.dataType; + } + + if (Boolean.TRUE.equals(p.isInteger)) { + if (example == null) { + example = "56"; + } + } else if (Boolean.TRUE.equals(p.isLong)) { + if (example == null) { + example = "2147483648L"; + } + } else if (Boolean.TRUE.equals(p.isDouble) + || Boolean.TRUE.equals(p.isFloat) + || Boolean.TRUE.equals(p.isNumber)) { + if (example == null) { + example = "3.4"; + } + } else if (Boolean.TRUE.equals(p.isBoolean)) { + if (Boolean.parseBoolean(p.example)) { + p.example = "1"; + } else { + p.example = "0"; + } + } else if (Boolean.TRUE.equals(p.isFile) || Boolean.TRUE.equals(p.isBinary)) { + example = "Blob.valueOf('Sample text file\\nContents')"; + } else if (Boolean.TRUE.equals(p.isByteArray)) { + if (example == null) { + example = "YmFzZSA2NCBkYXRh"; + } + example = "\"" + escapeText(example) + "\""; + } else if (Boolean.TRUE.equals(p.isDate)) { + if (example == null) { + example = "1960, 2, 17"; + } + example = "Date.newInstance(" + escapeText(p.example) + ")"; + } else if (Boolean.TRUE.equals(p.isDateTime)) { + if (example == null) { + example = "2013, 11, 12, 3, 3, 3"; + } + example = "Datetime.newInstanceGmt(" + escapeText(p.example) + ")"; + } else if (Boolean.TRUE.equals(p.isString)) { + if (example == null) { + example = p.paramName + "_example"; + } + example = "\'" + escapeText(example) + "\'"; + + } else if (!languageSpecificPrimitives.contains(type)) { + // type is a model class, e.g. User + example = type + ".getExample()"; + } + + // container + if (Boolean.TRUE.equals(p.isListContainer)) { + example = setPropertyExampleValue(p.items); + example = "new " + p.dataType + "{" + example + "}"; + } else if (Boolean.TRUE.equals(p.isMapContainer)) { + example = setPropertyExampleValue(p.items); + example = "new " + p.dataType + "{" + example + "}"; + } else if (example == null) { + example = "null"; + } + + p.example = example; + } + + protected String setPropertyExampleValue(CodegenProperty p) { + String example; + + if (p == null) { + return "null"; + } + + if (p.defaultValue == null) { + example = p.example; + } else { + example = p.defaultValue; + } + + String type = p.baseType; + if (type == null) { + type = p.datatype; + } + + if (Boolean.TRUE.equals(p.isInteger)) { + if (example == null) { + example = "56"; + } + } else if (Boolean.TRUE.equals(p.isLong)) { + if (example == null) { + example = "2147483648L"; + } + } else if (Boolean.TRUE.equals(p.isDouble) + || Boolean.TRUE.equals(p.isFloat) + || Boolean.TRUE.equals(p.isNumber)) { + if (example == null) { + example = "3.4"; + } + } else if (Boolean.TRUE.equals(p.isBoolean)) { + if (example == null) { + example = "true"; + } + } else if (Boolean.TRUE.equals(p.isFile) || Boolean.TRUE.equals(p.isBinary)) { + if (example == null) { + example = "Blob.valueOf('Sample text file\\nContents')"; + } + example = escapeText(example); + } else if (Boolean.TRUE.equals(p.isDate)) { + if (example == null) { + example = "1960, 2, 17"; + } + example = "Date.newInstance(" + escapeText(p.example) + ")"; + } else if (Boolean.TRUE.equals(p.isDateTime)) { + if (example == null) { + example = "2013, 11, 12, 3, 3, 3"; + } + example = "Datetime.newInstanceGmt(" + escapeText(p.example) + ")"; + } else if (Boolean.TRUE.equals(p.isString)) { + if (example == null) { + example = p.name + "_example"; + } + example = "\'" + escapeText(example) + "\'"; + + } else if (!languageSpecificPrimitives.contains(type)) { + // type is a model class, e.g. User + example = type + ".getExample()"; + } + + return example; } @Override @@ -242,6 +362,7 @@ public class ApexClientCodegen extends AbstractJavaCodegen { return cm; } + /* the following workaround is no longer needed @Override public void postProcessParameter(CodegenParameter parameter) { if (parameter.isBodyParam && parameter.isListContainer) { @@ -250,6 +371,7 @@ public class ApexClientCodegen extends AbstractJavaCodegen { setParameterExampleValue(parameter); } } + */ @Override public void preprocessOpenAPI(OpenAPI openAPI) { diff --git a/samples/client/petstore/apex/docs/SwagPetApi.md b/samples/client/petstore/apex/docs/SwagPetApi.md index 9de65472e74..ad5843ea638 100644 --- a/samples/client/petstore/apex/docs/SwagPetApi.md +++ b/samples/client/petstore/apex/docs/SwagPetApi.md @@ -77,7 +77,7 @@ petstore_auth.setAccessToken('YOUR ACCESS TOKEN'); Map params = new Map{ 'petId' => 2147483648L, - 'apiKey' => 'null' + 'apiKey' => 'apiKey_example' }; try { @@ -175,7 +175,7 @@ Swagger.OAuth petstore_auth = (Swagger.OAuth) client.getAuthentication('petstore petstore_auth.setAccessToken('YOUR ACCESS TOKEN'); Map params = new Map{ - 'tags' => new List{'aeiou'} + 'tags' => new List{'\'aeiou\''} }; try { @@ -318,8 +318,8 @@ petstore_auth.setAccessToken('YOUR ACCESS TOKEN'); Map params = new Map{ 'petId' => 2147483648L, - 'name' => 'null', - 'status' => 'null' + 'name' => 'name_example', + 'status' => 'status_example' }; try { @@ -368,7 +368,7 @@ petstore_auth.setAccessToken('YOUR ACCESS TOKEN'); Map params = new Map{ 'petId' => 2147483648L, - 'additionalMetadata' => 'null', + 'additionalMetadata' => 'additionalMetadata_example', 'file' => Blob.valueOf('Sample text file\nContents') }; diff --git a/samples/client/petstore/apex/docs/SwagStoreApi.md b/samples/client/petstore/apex/docs/SwagStoreApi.md index c2c5f7a553d..6b30b64127e 100644 --- a/samples/client/petstore/apex/docs/SwagStoreApi.md +++ b/samples/client/petstore/apex/docs/SwagStoreApi.md @@ -23,7 +23,7 @@ For valid response try integer IDs with value < 1000. Anything above 1000 or SwagStoreApi api = new SwagStoreApi(); Map params = new Map{ - 'orderId' => 'null' + 'orderId' => 'orderId_example' }; try { diff --git a/samples/client/petstore/apex/docs/SwagUserApi.md b/samples/client/petstore/apex/docs/SwagUserApi.md index 5968698701b..622607d65d2 100644 --- a/samples/client/petstore/apex/docs/SwagUserApi.md +++ b/samples/client/petstore/apex/docs/SwagUserApi.md @@ -152,7 +152,7 @@ This can only be done by the logged in user. SwagUserApi api = new SwagUserApi(); Map params = new Map{ - 'username' => 'null' + 'username' => 'username_example' }; try { @@ -193,7 +193,7 @@ Get user by user name SwagUserApi api = new SwagUserApi(); Map params = new Map{ - 'username' => 'null' + 'username' => 'username_example' }; try { @@ -235,8 +235,8 @@ Logs user into the system SwagUserApi api = new SwagUserApi(); Map params = new Map{ - 'username' => 'null', - 'password' => 'null' + 'username' => 'username_example', + 'password' => 'password_example' }; try { @@ -315,7 +315,7 @@ This can only be done by the logged in user. SwagUserApi api = new SwagUserApi(); Map params = new Map{ - 'username' => 'null', + 'username' => 'username_example', 'swagUser' => SwagUser.getExample() };