use of com.cloudant.client.api.views.ViewResponse in project java-cloudant by cloudant.
the class ViewMultipleRequester method getViewResponses.
public List<ViewResponse<K, V>> getViewResponses() throws IOException {
// build the queries array of data to POST
JsonArray queries = new JsonArray();
ViewQueryParameters<K, V> viewQueryParameters = null;
for (ViewQueryParameters<K, V> params : requestParameters) {
if (viewQueryParameters == null) {
viewQueryParameters = params;
}
queries.add(params.asJson());
}
JsonObject queryJson = new JsonObject();
queryJson.add("queries", queries);
// construct and execute the POST request
HttpConnection post = Http.POST(viewQueryParameters.getViewURIBuilder().build(), "application/json");
post.setRequestBody(queryJson.toString());
JsonObject jsonResponse = ViewRequester.executeRequestWithResponseAsJson(viewQueryParameters, post);
// loop the returned array creating the ViewResponse objects
List<ViewResponse<K, V>> responses = new ArrayList<ViewResponse<K, V>>();
JsonArray jsonResponses = jsonResponse.getAsJsonArray("results");
if (jsonResponses != null) {
int index = 0;
for (ViewQueryParameters<K, V> params : requestParameters) {
JsonObject response = jsonResponses.get(index).getAsJsonObject();
responses.add(new ViewResponseImpl<K, V>(params, response));
index++;
}
return responses;
} else {
return Collections.emptyList();
}
}
Aggregations