Skip to content

Commit

Permalink
Implementing allOf feature for go
Browse files Browse the repository at this point in the history
  • Loading branch information
AsabuHere committed Dec 4, 2023
1 parent ad5ad7b commit 1c0a297
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
17 changes: 17 additions & 0 deletions src/main/java/com/twilio/oai/TwilioGoGenerator.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.TreeSet;
import java.util.function.Function;
import java.util.stream.Collector;
import java.util.stream.Collectors;
Expand Down Expand Up @@ -138,6 +139,22 @@ public OperationsMap postProcessOperationsWithModels(final OperationsMap objs, L
co.returnType = field.dataType;
co.returnBaseType = field.complexType;

co.vendorExtensions.put("x-payload-field-name", field.name);
}
//For handling the cases where the schema contains allOf
else{
ModelMap modelMap = allModels.stream().filter(map1 -> map1.getModel().getClassname().equals(co.returnType)).collect(toSingleton());
CodegenModel model = (CodegenModel) modelMap.get("model");
final Optional<CodegenModel> returnModelOther = Optional.ofNullable(model);
CodegenProperty field = returnModelOther.get().allVars
.stream()
.filter(v -> v.dataType.startsWith("[]"))
.collect(toSingleton());

co.returnContainer = co.returnType;
co.returnType = field.dataType;
co.returnBaseType = field.complexType;

co.vendorExtensions.put("x-payload-field-name", field.name);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/twilio-go/api.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func (params *{{{nickname}}}Params) Set{{paramName}}({{paramName}} {{{dataType}}
{{#notes}}
// {{{notes}}}
{{/notes}}
func (c *ApiService) {{{nickname}}}({{#allParams}}{{#required}}{{paramName}} {{{dataType}}}{{^last}}, {{/last}}{{/required}}{{/allParams}}{{#hasOptionalParams}}params *{{{nickname}}}Params{{/hasOptionalParams}}) ({{#returnType}}*{{{returnType}}}, {{/returnType}}error) {
func (c *ApiService) {{{nickname}}}({{#allParams}}{{#required}}{{paramName}} {{{dataType}}}{{^-last}}, {{/-last}}{{/required}}{{/allParams}}{{#hasOptionalParams}}params *{{{nickname}}}Params{{/hasOptionalParams}}) ({{#returnType}}*{{{returnType}}}, {{/returnType}}error) {
path := "{{{path}}}"
{{>partial_serialization}}

Expand Down

0 comments on commit 1c0a297

Please sign in to comment.