From 966f418e1bd5f65496ca969da5813872162663ef Mon Sep 17 00:00:00 2001 From: sbansla Date: Mon, 27 Nov 2023 17:17:50 +0530 Subject: [PATCH 1/2] added constructors for nested models as well --- .../com/twilio/oai/JsonRequestBodyResolver.java | 7 +++++++ src/main/resources/twilio-java/models.mustache | 9 +++++++++ .../java/com/twilio/oai/TwilioGeneratorTest.java | 14 ++++---------- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/twilio/oai/JsonRequestBodyResolver.java b/src/main/java/com/twilio/oai/JsonRequestBodyResolver.java index fbbf91d5a..99e829e84 100644 --- a/src/main/java/com/twilio/oai/JsonRequestBodyResolver.java +++ b/src/main/java/com/twilio/oai/JsonRequestBodyResolver.java @@ -85,7 +85,14 @@ public void resolve(final CodegenProperty property) { resolve(codegenProperty); containerResolver.rewrapContainerType(codegenProperty, containerTypes); } + + for (CodegenProperty codegenProperty: model.getRequiredVars()) { + resolve(codegenProperty); + } + apiResourceBuilder.addNestedModel(model); + model.getVendorExtensions().put("x-constructor", model.getRequiredVars()); + model.getVendorExtensions().put("x-constructor-required", true); } } } diff --git a/src/main/resources/twilio-java/models.mustache b/src/main/resources/twilio-java/models.mustache index 701f91430..dc3c7c2e1 100644 --- a/src/main/resources/twilio-java/models.mustache +++ b/src/main/resources/twilio-java/models.mustache @@ -12,6 +12,14 @@ }{{/vendorExtensions.x-serialize}} {{/vars}} {{#vendorExtensions.x-constructor-required}} + {{#vendorExtensions.x-constructor}} + public {{classname}}({{#.}}final {{{dataType}}} {{name}}{{^-last}}, {{/-last}}{{/.}} ) { + {{#.}} + this.{{name}} = {{name}}; + {{/.}} + } + {{/vendorExtensions.x-constructor}} + {{^vendorExtensions.x-constructor}} {{#modelParameters}} public {{classname}}({{#.}}final {{{dataType}}} {{name}}{{^-last}}, {{/-last}}{{/.}} ) { {{#.}} @@ -19,6 +27,7 @@ {{/.}} } {{/modelParameters}} + {{/vendorExtensions.x-constructor}} {{/vendorExtensions.x-constructor-required}} {{^vendorExtensions.x-response}} diff --git a/src/test/java/com/twilio/oai/TwilioGeneratorTest.java b/src/test/java/com/twilio/oai/TwilioGeneratorTest.java index dc9bcd094..e99e36ce3 100644 --- a/src/test/java/com/twilio/oai/TwilioGeneratorTest.java +++ b/src/test/java/com/twilio/oai/TwilioGeneratorTest.java @@ -28,26 +28,20 @@ public class TwilioGeneratorTest { @Parameterized.Parameters public static Collection generators() { - return Arrays.asList(Generator.TWILIO_CSHARP, - Generator.TWILIO_GO, - Generator.TWILIO_JAVA, - Generator.TWILIO_NODE, - Generator.TWILIO_PHP, - Generator.TWILIO_PYTHON, - Generator.TWILIO_RUBY, - Generator.TWILIO_TERRAFORM); + return Arrays.asList(Generator.TWILIO_JAVA); } private final Generator generator; @BeforeClass public static void setUp() { - FileUtils.deleteQuietly(new File("codegen")); + //FileUtils.deleteQuietly(new File("codegen")); } @Test public void launchGenerator() { - final String pathname = "examples/spec/twilio_api_v2010.yaml"; + //final String pathname = "examples/spec/twilio_api_v2010.yaml"; + final String pathname = "/Users/sbansla/Documents/code/twilio-oai/spec/yaml/twilio_content_sdk.yaml"; // final String pathname = "examples/twilio_messaging_bulk_v1.yaml"; File filesList[] ; File directoryPath = new File(pathname); From d213bcb956a2075ffb41dfe3e8d94997e4c61f05 Mon Sep 17 00:00:00 2001 From: sbansla Date: Mon, 27 Nov 2023 17:58:40 +0530 Subject: [PATCH 2/2] corrected test file --- .../java/com/twilio/oai/TwilioGeneratorTest.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/twilio/oai/TwilioGeneratorTest.java b/src/test/java/com/twilio/oai/TwilioGeneratorTest.java index e99e36ce3..dc9bcd094 100644 --- a/src/test/java/com/twilio/oai/TwilioGeneratorTest.java +++ b/src/test/java/com/twilio/oai/TwilioGeneratorTest.java @@ -28,20 +28,26 @@ public class TwilioGeneratorTest { @Parameterized.Parameters public static Collection generators() { - return Arrays.asList(Generator.TWILIO_JAVA); + return Arrays.asList(Generator.TWILIO_CSHARP, + Generator.TWILIO_GO, + Generator.TWILIO_JAVA, + Generator.TWILIO_NODE, + Generator.TWILIO_PHP, + Generator.TWILIO_PYTHON, + Generator.TWILIO_RUBY, + Generator.TWILIO_TERRAFORM); } private final Generator generator; @BeforeClass public static void setUp() { - //FileUtils.deleteQuietly(new File("codegen")); + FileUtils.deleteQuietly(new File("codegen")); } @Test public void launchGenerator() { - //final String pathname = "examples/spec/twilio_api_v2010.yaml"; - final String pathname = "/Users/sbansla/Documents/code/twilio-oai/spec/yaml/twilio_content_sdk.yaml"; + final String pathname = "examples/spec/twilio_api_v2010.yaml"; // final String pathname = "examples/twilio_messaging_bulk_v1.yaml"; File filesList[] ; File directoryPath = new File(pathname);