package org.xbib.elasticsearch.rest.action.isbnformat;
import org.elasticsearch.client.node.NodeClient;
import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.rest.BaseRestHandler;
import org.elasticsearch.rest.RestController;
import org.elasticsearch.rest.RestRequest;
import org.elasticsearch.rest.action.RestStatusToXContentListener;
import org.xbib.elasticsearch.action.isbnformat.ISBNFormatAction;
import org.xbib.elasticsearch.action.isbnformat.ISBNFormatRequest;
import java.io.IOException;
import static org.elasticsearch.rest.RestRequest.Method.GET;
/**
*
*/
public class RestISBNFormatterAction extends BaseRestHandler {
@Inject
public RestISBNFormatterAction(Settings settings, RestController controller) {
super(settings);
controller.registerHandler(GET, "/_isbn", this);
controller.registerHandler(GET, "/_isbn/{value}", this);
}
@Override
protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException {
final String value = request.param("value");
final ISBNFormatRequest isbnFormatRequest = new ISBNFormatRequest().setValue(value);
return channel -> client.execute(ISBNFormatAction.INSTANCE, isbnFormatRequest,
new RestStatusToXContentListener<>(channel));
}
}