diff --git a/src/main/java/org/opensearch/ubl/action/UserBehaviorLoggingRestHandler.java b/src/main/java/org/opensearch/ubl/action/UserBehaviorLoggingRestHandler.java index dc2d4e0..7cc3036 100644 --- a/src/main/java/org/opensearch/ubl/action/UserBehaviorLoggingRestHandler.java +++ b/src/main/java/org/opensearch/ubl/action/UserBehaviorLoggingRestHandler.java @@ -56,14 +56,18 @@ protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient nod final String storeName = request.param("store"); LOGGER.info("Creating search relevance index {}", storeName); - return (channel) -> backend.initialize(storeName, channel); + backend.initialize(storeName); + return (channel) -> channel.sendResponse(new BytesRestResponse(RestStatus.OK, "created")); } else if (request.method() == DELETE) { final String storeName = request.param("store"); + // TODO: Make sure the store actually exists first. + LOGGER.info("Deleting search relevance index {}", storeName); - return (channel) -> backend.delete(storeName, channel); + backend.delete(storeName); + return (channel) -> channel.sendResponse(new BytesRestResponse(RestStatus.OK, "deleted")); } else if (request.method() == POST) { @@ -71,6 +75,8 @@ protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient nod final String storeName = request.param("store"); + // TODO: Make sure the store actually exists first. + LOGGER.info("Persisting event into {}", storeName); final String eventJson = request.content().utf8ToString(); backend.persistEvent(storeName, eventJson); diff --git a/src/main/java/org/opensearch/ubl/backends/Backend.java b/src/main/java/org/opensearch/ubl/backends/Backend.java index 9ed461d..ac3639e 100644 --- a/src/main/java/org/opensearch/ubl/backends/Backend.java +++ b/src/main/java/org/opensearch/ubl/backends/Backend.java @@ -16,9 +16,9 @@ public interface Backend { - void initialize(final String storeName, RestChannel channel); + void initialize(final String storeName); - void delete(final String storeName, RestChannel channel); + void delete(final String storeName); void persistEvent(final String storeName, String eventJson); diff --git a/src/main/java/org/opensearch/ubl/backends/OpenSearchBackend.java b/src/main/java/org/opensearch/ubl/backends/OpenSearchBackend.java index 1997ad9..7ea1e1c 100644 --- a/src/main/java/org/opensearch/ubl/backends/OpenSearchBackend.java +++ b/src/main/java/org/opensearch/ubl/backends/OpenSearchBackend.java @@ -18,8 +18,6 @@ import org.opensearch.common.settings.Settings; import org.opensearch.common.util.io.Streams; import org.opensearch.common.xcontent.XContentType; -import org.opensearch.rest.RestChannel; -import org.opensearch.rest.action.RestToXContentListener; import org.opensearch.ubl.SettingsConstants; import org.opensearch.ubl.events.Event; import org.opensearch.ubl.events.OpenSearchEventManager; @@ -51,7 +49,7 @@ public OpenSearchBackend(final Client client) { } @Override - public void initialize(final String storeName, final RestChannel channel) { + public void initialize(final String storeName) { // TODO: Determine if already initialized with this index name first. // TODO: Also need some error handling around this in case one or both of these index creations fail. @@ -65,7 +63,7 @@ public void initialize(final String storeName, final RestChannel channel) { .mapping(getResourceFile(EVENTS_MAPPING_FILE)) .settings(getIndexSettings()); - client.admin().indices().create(createEventsIndexRequest, new RestToXContentListener<>(channel)); + client.admin().indices().create(createEventsIndexRequest); // Create the queries index. final String queriesIndexName = getQueriesIndexName(storeName); @@ -74,19 +72,19 @@ public void initialize(final String storeName, final RestChannel channel) { .mapping(getResourceFile(QUERIES_MAPPING_FILE)) .settings(getIndexSettings()); - client.admin().indices().create(createQueryIndexRequest, new RestToXContentListener<>(channel)); + client.admin().indices().create(createQueryIndexRequest); } @Override - public void delete(String storeName, RestChannel channel) { + public void delete(String storeName) { LOGGER.info("Deleting search relevance store {}", storeName); final String eventsIndexName = getEventsIndexName(storeName); final String queriesIndexName = getQueriesIndexName(storeName); final DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest(eventsIndexName, queriesIndexName); - client.admin().indices().delete(deleteIndexRequest, new RestToXContentListener<>(channel)); + client.admin().indices().delete(deleteIndexRequest); }