|
@@ -20,25 +20,18 @@
|
|
|
package org.elasticsearch.rest.action;
|
|
|
|
|
|
import org.elasticsearch.action.fieldcaps.FieldCapabilitiesRequest;
|
|
|
-import org.elasticsearch.action.fieldcaps.FieldCapabilitiesResponse;
|
|
|
import org.elasticsearch.action.support.IndicesOptions;
|
|
|
import org.elasticsearch.client.node.NodeClient;
|
|
|
import org.elasticsearch.common.Strings;
|
|
|
import org.elasticsearch.common.settings.Settings;
|
|
|
-import org.elasticsearch.common.xcontent.XContentBuilder;
|
|
|
-import org.elasticsearch.common.xcontent.XContentParser;
|
|
|
import org.elasticsearch.rest.BaseRestHandler;
|
|
|
-import org.elasticsearch.rest.BytesRestResponse;
|
|
|
import org.elasticsearch.rest.RestController;
|
|
|
import org.elasticsearch.rest.RestRequest;
|
|
|
-import org.elasticsearch.rest.RestResponse;
|
|
|
-import org.elasticsearch.rest.RestStatus;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
import static org.elasticsearch.rest.RestRequest.Method.GET;
|
|
|
import static org.elasticsearch.rest.RestRequest.Method.POST;
|
|
|
-import static org.elasticsearch.rest.RestStatus.OK;
|
|
|
|
|
|
public class RestFieldCapabilitiesAction extends BaseRestHandler {
|
|
|
public RestFieldCapabilitiesAction(Settings settings, RestController controller) {
|
|
@@ -57,30 +50,13 @@ public class RestFieldCapabilitiesAction extends BaseRestHandler {
|
|
|
@Override
|
|
|
public RestChannelConsumer prepareRequest(final RestRequest request,
|
|
|
final NodeClient client) throws IOException {
|
|
|
- if (request.hasContentOrSourceParam()) {
|
|
|
- deprecationLogger.deprecated("Specifying a request body is deprecated -- the" +
|
|
|
- " [fields] request parameter should be used instead.");
|
|
|
- if (request.hasParam("fields")) {
|
|
|
- throw new IllegalArgumentException("can't specify a request body and [fields]" +
|
|
|
- " request parameter, either specify a request body or the" +
|
|
|
- " [fields] request parameter");
|
|
|
- }
|
|
|
- }
|
|
|
+ String[] indices = Strings.splitStringByCommaToArray(request.param("index"));
|
|
|
+ FieldCapabilitiesRequest fieldRequest = new FieldCapabilitiesRequest()
|
|
|
+ .fields(Strings.splitStringByCommaToArray(request.param("fields")))
|
|
|
+ .indices(indices);
|
|
|
|
|
|
- final String[] indices = Strings.splitStringByCommaToArray(request.param("index"));
|
|
|
- final FieldCapabilitiesRequest fieldRequest;
|
|
|
- if (request.hasContentOrSourceParam()) {
|
|
|
- try (XContentParser parser = request.contentOrSourceParamParser()) {
|
|
|
- fieldRequest = FieldCapabilitiesRequest.parseFields(parser);
|
|
|
- }
|
|
|
- } else {
|
|
|
- fieldRequest = new FieldCapabilitiesRequest();
|
|
|
- fieldRequest.fields(Strings.splitStringByCommaToArray(request.param("fields")));
|
|
|
- }
|
|
|
- fieldRequest.indices(indices);
|
|
|
fieldRequest.indicesOptions(
|
|
|
- IndicesOptions.fromRequest(request, fieldRequest.indicesOptions())
|
|
|
- );
|
|
|
+ IndicesOptions.fromRequest(request, fieldRequest.indicesOptions()));
|
|
|
return channel -> client.fieldCaps(fieldRequest, new RestToXContentListener<>(channel));
|
|
|
}
|
|
|
}
|