Skip to content

Commit

Permalink
Replace dataType with baseType+containerType to fix compilation error…
Browse files Browse the repository at this point in the history
… if array found
  • Loading branch information
karolchmist committed May 22, 2019
1 parent 781c5a4 commit 5b02bb9
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,9 @@ public static Map<String, Object> setComplexTypes(Map<String, Object> objs) {
Boolean hasComplexTypes = Boolean.FALSE;
Boolean hasCookieParams = Boolean.FALSE;
Set<String> complexRequestTypes = new HashSet<>();
Set<String> complexReturnTypes = new HashSet<>();
List<CodegenResponse> complexReturnTypes = new ArrayList<>();
for (CodegenOperation op : operationList) {
Set<String> complexOperationReturnTypes = new HashSet<>();
List<CodegenResponse> complexOperationReturnTypes = new ArrayList<>();
for(CodegenParameter parameter : op.allParams) {
if(!parameter.getIsPrimitiveType()){
if(parameter.getIsBodyParam()){
Expand All @@ -89,8 +89,8 @@ public static Map<String, Object> setComplexTypes(Map<String, Object> objs) {
for(CodegenResponse response : op.responses) {
if(!response.getIsPrimitiveType()){
hasComplexTypes = Boolean.TRUE;
complexReturnTypes.add(response.dataType);
complexOperationReturnTypes.add(response.dataType);
complexReturnTypes.add(response);
complexOperationReturnTypes.add(response);
}
}
op.getVendorExtensions().put("complexReturnTypes", complexOperationReturnTypes);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,15 @@ class {{classname}}(
trait {{classname}}Service {
{{#operation}}
{{#responses}} def {{operationId}}{{code}}{{#dataType}}(response{{dataType}}: {{dataType}}){{^isPrimitiveType}}(implicit toEntityMarshaller{{dataType}}: ToEntityMarshaller[{{dataType}}]){{/isPrimitiveType}}{{/dataType}}: Route =
complete(({{code}}, {{#dataType}}response{{dataType}}{{/dataType}}{{^dataType}}"{{message}}"{{/dataType}}))
{{#responses}} def {{operationId}}{{code}}{{#baseType}}(response{{baseType}}{{containerType}}: {{dataType}}){{^isPrimitiveType}}(implicit toEntityMarshaller{{baseType}}{{containerType}}: ToEntityMarshaller[{{dataType}}]){{/isPrimitiveType}}{{/baseType}}: Route =
complete(({{code}}, {{#baseType}}response{{baseType}}{{containerType}}{{/baseType}}{{^baseType}}"{{message}}"{{/baseType}}))
{{/responses}}
/**
{{#responses}} * {{#code}}Code: {{.}}{{/code}}{{#message}}, Message: {{.}}{{/message}}{{#dataType}}, DataType: {{.}}{{/dataType}}
{{/responses}}
*/
def {{operationId}}({{#vendorExtensions.paramsWithSupportedType}}{{paramName}}: {{^required}}{{^isBodyParam}}Option[{{/isBodyParam}}{{/required}}{{dataType}}{{^required}}{{^isBodyParam}}]{{/isBodyParam}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.paramsWithSupportedType}}){{^vendorExtensions.complexReturnTypes.isEmpty}}
(implicit {{#vendorExtensions.complexReturnTypes}}toEntityMarshaller{{.}}: ToEntityMarshaller[{{.}}]{{^-last}}, {{/-last}}{{/vendorExtensions.complexReturnTypes}}){{/vendorExtensions.complexReturnTypes.isEmpty}}: Route
(implicit {{#vendorExtensions.complexReturnTypes}}toEntityMarshaller{{baseType}}{{containerType}}: ToEntityMarshaller[{{dataType}}]{{^-last}}, {{/-last}}{{/vendorExtensions.complexReturnTypes}}){{/vendorExtensions.complexReturnTypes.isEmpty}}: Route

{{/operation}}
}
Expand All @@ -61,7 +61,7 @@ trait {{classname}}Marshaller {

{{/complexRequestTypes}}

{{#complexReturnTypes}} implicit def toEntityMarshaller{{.}}: ToEntityMarshaller[{{.}}]
{{#complexReturnTypes}} implicit def toEntityMarshaller{{baseType}}{{containerType}}: ToEntityMarshaller[{{dataType}}]

{{/complexReturnTypes}}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,9 @@ public void testSetComplexTypes() {

Assert.assertEquals(result.get("hasComplexTypes"), Boolean.TRUE);
Assert.assertEquals(result.get("complexRequestTypes"), new HashSet<String>(){{addAll(Arrays.asList("Pet","User"));}});
Assert.assertEquals(result.get("complexReturnTypes"), new HashSet<String>(){{addAll(Arrays.asList("Pet","User"));}});
Assert.assertEquals(codegenOperation1.getVendorExtensions().get("complexReturnTypes"), new HashSet<String>(){{addAll(Collections.singletonList("Pet"));}});
Assert.assertEquals(codegenOperation2.getVendorExtensions().get("complexReturnTypes"), new HashSet<String>(){{addAll(Arrays.asList("Pet","User"));}});
Assert.assertEquals(result.get("complexReturnTypes"), new LinkedList<CodegenResponse>(){{addAll(Arrays.asList(response1, response2, response3));}});
Assert.assertEquals(codegenOperation1.getVendorExtensions().get("complexReturnTypes"), new LinkedList<CodegenResponse>(){{add(response1);}});
Assert.assertEquals(codegenOperation2.getVendorExtensions().get("complexReturnTypes"), new LinkedList<CodegenResponse>(){{addAll(Arrays.asList(response1, response3));}});
}

@Test
Expand Down

0 comments on commit 5b02bb9

Please sign in to comment.