@POST
@Path("_query")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
@ApiOperation(nickname = "dataMessageQuery",
value = "Queries the DatastoreMessages",
notes = "Queries the DatastoreMessages with the given DatastoreMessageQuery parameter returning all matching DatastoreMessages",
response = MessageListResult.class)
public JsonMessageListResult queryJson(
@ApiParam(value = "The ScopeId in which to search results", required = true, defaultValue = DEFAULT_SCOPE_ID) @PathParam("scopeId") ScopeId scopeId,
@ApiParam(value = "The DatastoreMessageQuery to use to filter results", required = true) JsonMessageQuery query) throws Exception {
query.setScopeId(scopeId);
MessageListResult result = DATA_MESSAGES.query(scopeId, convertQuery(query));
List<JsonDatastoreMessage> jsonDatastoreMessages = new ArrayList<>();
result.getItems().forEach(m -> jsonDatastoreMessages.add(new JsonDatastoreMessage(m)));
JsonMessageListResult jsonResult = new JsonMessageListResult();
jsonResult.addItems(jsonDatastoreMessages);
return jsonResult;
}