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

@@ -62,12 +62,12 @@ public class PetApiController extends Controller {
@ApiAction
public Result findPetsByStatus() throws Exception {
//TODO: Support this later
//List<Pair> statusPair = SwaggerUtils.parameterToPairs("csv", "status", request().getQueryString("status"));
List<String> statusList = SwaggerUtils.parametersToList("csv", "status", request().getQueryString("status"));
List<String> status = new ArrayList<String>();
//for (Pair pair : statusPair) {
// status.add(pair.getValue());
//}
for (String curParam : statusList) {
//noinspection UseBulkOperation
status.add(curParam);
}
List<Pet> obj = imp.findPetsByStatus(status);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
@@ -76,12 +76,12 @@ public class PetApiController extends Controller {
@ApiAction
public Result findPetsByTags() throws Exception {
//TODO: Support this later
//List<Pair> tagsPair = SwaggerUtils.parameterToPairs("csv", "tags", request().getQueryString("tags"));
List<String> tagsList = SwaggerUtils.parametersToList("csv", "tags", request().getQueryString("tags"));
List<String> tags = new ArrayList<String>();
//for (Pair pair : tagsPair) {
// tags.add(pair.getValue());
//}
for (String curParam : tagsList) {
//noinspection UseBulkOperation
tags.add(curParam);
}
List<Pet> obj = imp.findPetsByTags(tags);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
@@ -110,7 +110,7 @@ public class PetApiController extends Controller {
@ApiAction
public Result updatePetWithForm(Long petId) throws Exception {
String valuename = ((String[]) request().body().asMultipartFormData().asFormUrlEncoded().get("name"))[0];
String valuename = (request().body().asMultipartFormData().asFormUrlEncoded().get("name"))[0];
String name;
if (valuename != null) {
name = (String)valuename;
@@ -118,7 +118,7 @@ public class PetApiController extends Controller {
} else {
name = "";
}
String valuestatus = ((String[]) request().body().asMultipartFormData().asFormUrlEncoded().get("status"))[0];
String valuestatus = (request().body().asMultipartFormData().asFormUrlEncoded().get("status"))[0];
String status;
if (valuestatus != null) {
status = (String)valuestatus;
@@ -133,7 +133,7 @@ public class PetApiController extends Controller {
@ApiAction
public Result uploadFile(Long petId) throws Exception {
String valueadditionalMetadata = ((String[]) request().body().asMultipartFormData().asFormUrlEncoded().get("additionalMetadata"))[0];
String valueadditionalMetadata = (request().body().asMultipartFormData().asFormUrlEncoded().get("additionalMetadata"))[0];
String additionalMetadata;
if (valueadditionalMetadata != null) {
additionalMetadata = (String)valueadditionalMetadata;

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 {
@@ -20,8 +17,8 @@ public class SwaggerUtils {
public @interface ApiAction {
}
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;
@@ -30,7 +27,7 @@ public class SwaggerUtils {
if (value instanceof Collection) {
valueCollection = (Collection) value;
} else {
params.put(name, parameterToString(value));
params.add(parameterToString(value));
return params;
}
@@ -44,7 +41,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;
@@ -68,7 +65,7 @@ public class SwaggerUtils {
sb.append(parameterToString(item));
}
params.put(name, sb.substring(1));
params.add(sb.substring(1));
return params;
}