StringBuilder path = new StringBuilder();
HttpMethod method = HttpMethod.GET;
ByteBuf content = null;
if (msg instanceof ViewQueryRequest) {
ViewQueryRequest queryMsg = (ViewQueryRequest) msg;
path.append("/").append(msg.bucket()).append("/_design/");
path.append(queryMsg.development() ? "dev_" + queryMsg.design() : queryMsg.design());
path.append("/_view/").append(queryMsg.view());
if (queryMsg.query() != null && !queryMsg.query().isEmpty()) {
path.append("?").append(queryMsg.query());
}
} else if (msg instanceof GetDesignDocumentRequest) {
GetDesignDocumentRequest queryMsg = (GetDesignDocumentRequest) msg;
path.append("/").append(msg.bucket()).append("/_design/");
path.append(queryMsg.development() ? "dev_" + queryMsg.name() : queryMsg.name());
} else if (msg instanceof UpsertDesignDocumentRequest) {
method = HttpMethod.PUT;
UpsertDesignDocumentRequest queryMsg = (UpsertDesignDocumentRequest) msg;
path.append("/").append(msg.bucket()).append("/_design/");
path.append(queryMsg.development() ? "dev_" + queryMsg.name() : queryMsg.name());
content = Unpooled.copiedBuffer(queryMsg.body(), CHARSET);
} else if (msg instanceof RemoveDesignDocumentRequest) {
method = HttpMethod.DELETE;
RemoveDesignDocumentRequest queryMsg = (RemoveDesignDocumentRequest) msg;
path.append("/").append(msg.bucket()).append("/_design/");
path.append(queryMsg.development() ? "dev_" + queryMsg.name() : queryMsg.name());
} else {
throw new IllegalArgumentException("Unknown incoming ViewRequest type "
+ msg.getClass());
}