Add basic support for collection. (#5776)

This commit is contained in:
Jean-François Côté
2017-06-07 05:12:30 -04:00
committed by wing328
parent 6a986975e4
commit ccf2f2ff07
4 changed files with 42 additions and 51 deletions

View File

@@ -41,9 +41,6 @@ public class {{classname}}Controller extends Controller {
{{#wrapCalls}}@ApiAction{{/wrapCalls}}
public Result {{operationId}}({{#pathParams}}{{>pathParams}}{{#hasMore}},{{/hasMore}}{{/pathParams}}) {{^handleExceptions}}{{#bodyParams}}throws IOException{{/bodyParams}}{{/handleExceptions}}{{#handleExceptions}}throws Exception{{/handleExceptions}} {
{{#bodyParams}}
{{#collectionFormat}}
//TODO: Support this later
{{/collectionFormat}}
{{^collectionFormat}}
JsonNode node{{paramName}} = request().body().asJson();
{{{dataType}}} {{paramName}};
@@ -59,12 +56,12 @@ public class {{classname}}Controller extends Controller {
{{/bodyParams}}
{{#queryParams}}
{{#collectionFormat}}
//TODO: Support this later
//List<Pair> {{paramName}}Pair = SwaggerUtils.parameterToPairs("{{collectionFormat}}", "{{paramName}}", request().getQueryString("{{baseName}}"));
List<String> {{paramName}}List = SwaggerUtils.parametersToList("{{collectionFormat}}", "{{paramName}}", request().getQueryString("{{baseName}}"));
{{{dataType}}} {{paramName}} = new Array{{{dataType}}}();
//for (Pair pair : {{paramName}}Pair) {
// {{paramName}}.add({{>conversionBegin}}pair.getValue(){{>conversionEnd}});
//}
for (String curParam : {{paramName}}List) {
//noinspection UseBulkOperation
{{paramName}}.add({{>conversionBegin}}curParam{{>conversionEnd}});
}
{{/collectionFormat}}
{{^collectionFormat}}
String value{{paramName}} = request().getQueryString("{{paramName}}");
@@ -89,15 +86,15 @@ public class {{classname}}Controller extends Controller {
{{/notFile}}
{{#notFile}}
{{#collectionFormat}}
//TODO: Support this later
//List<Pair> {{paramName}}Pair = SwaggerUtils.parameterToPairs("{{collectionFormat}}", "{{paramName}}", ((String[]) request().body().asMultipartFormData().asFormUrlEncoded().get("{{baseName}}"))[0]);
List<String> {{paramName}}List = SwaggerUtils.parametersToList("{{collectionFormat}}", "{{paramName}}", (request().body().asMultipartFormData().asFormUrlEncoded().get("{{baseName}}"))[0]);
{{{dataType}}} {{paramName}} = new Array{{{dataType}}}();
//for (Pair pair : {{paramName}}Pair) {
// {{paramName}}.add({{>conversionBegin}}pair.getValue(){{>conversionEnd}});
//}
for (String curParam : {{paramName}}List) {
//noinspection UseBulkOperation
{{paramName}}.add({{>conversionBegin}}curParam{{>conversionEnd}});
}
{{/collectionFormat}}
{{^collectionFormat}}
String value{{paramName}} = ((String[]) request().body().asMultipartFormData().asFormUrlEncoded().get("{{baseName}}"))[0];
String value{{paramName}} = (request().body().asMultipartFormData().asFormUrlEncoded().get("{{baseName}}"))[0];
{{{dataType}}} {{paramName}};
{{^required}}
if (value{{paramName}} != null) {
@@ -112,12 +109,12 @@ public class {{classname}}Controller extends Controller {
{{/formParams}}
{{#headerParams}}
{{#collectionFormat}}
//TODO: Support this later
//List<Pair> {{paramName}}Pair = SwaggerUtils.parameterToPairs("{{collectionFormat}}", "{{paramName}}", request().getHeader("{{baseName}}"));
//{{{dataType}}} {{paramName}} = new Array{{{dataType}}}();
//for (Pair pair : {{paramName}}Pair) {
// {{paramName}}.add({{>conversionBegin}}pair.getValue(){{>conversionEnd}});
//}
List<String> {{paramName}}List = SwaggerUtils.parametersToList("{{collectionFormat}}", "{{paramName}}", request().getHeader("{{baseName}}"));
{{{dataType}}} {{paramName}} = new Array{{{dataType}}}();
for (String curParam : {{paramName}}List) {
//noinspection UseBulkOperation
{{paramName}}.add({{>conversionBegin}}curParam{{>conversionEnd}});
}
{{/collectionFormat}}
{{^collectionFormat}}
String value{{paramName}} = request().getHeader("{{baseName}}");

View File

@@ -7,10 +7,7 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
public class SwaggerUtils {
@@ -22,8 +19,8 @@ public class SwaggerUtils {
}
{{/handleExceptions}}
public static Map<String, String> parameterToPairs(String collectionFormat, String name, Object value){
Map<String, String> params = new HashMap<>();
public static List<String> parametersToList(String collectionFormat, String name, Object value){
List<String> params = new ArrayList<>();
// preconditions
if (name == null || name.isEmpty() || value == null) return params;
@@ -32,7 +29,7 @@ public class SwaggerUtils {
if (value instanceof Collection) {
valueCollection = (Collection) value;
} else {
params.put(name, parameterToString(value));
params.add(parameterToString(value));
return params;
}
@@ -46,7 +43,7 @@ public class SwaggerUtils {
// create the params based on the collection format
if (collectionFormat.equals("multi")) {
for (Object item : valueCollection) {
params.put(name, parameterToString(item));
params.add(parameterToString(item));
}
return params;
@@ -70,7 +67,7 @@ public class SwaggerUtils {
sb.append(parameterToString(item));
}
params.put(name, sb.substring(1));
params.add(sb.substring(1));
return params;
}