Fix update call in reactive client (Elasticsearch 7 client)

Original Pull Request #2281
Closes #2276

(cherry picked from commit 8377f64a8a919b31c37f337fc92c3ea8ee9154d8)
This commit is contained in:
Peter-Josef Meisch 2022-08-26 08:06:37 +02:00
parent 3c6d96e49f
commit a3ebd8be78
No known key found for this signature in database
GPG Key ID: DE108246970C7708
2 changed files with 17 additions and 7 deletions

View File

@ -336,8 +336,13 @@ public class RequestConverters {
public static Request index(IndexRequest indexRequest) { public static Request index(IndexRequest indexRequest) {
String method = Strings.hasLength(indexRequest.id()) ? HttpMethod.PUT.name() : HttpMethod.POST.name(); String method = Strings.hasLength(indexRequest.id()) ? HttpMethod.PUT.name() : HttpMethod.POST.name();
boolean isCreate = (indexRequest.opType() == DocWriteRequest.OpType.CREATE); boolean isCreate = (indexRequest.opType() == DocWriteRequest.OpType.CREATE);
String endpoint = endpoint(indexRequest.index(), indexRequest.type(), indexRequest.id(), String endpoint;
isCreate ? "_create" : null); if (indexRequest.opType() == DocWriteRequest.OpType.CREATE) {
endpoint = indexRequest.type().equals("_doc") ? endpoint(indexRequest.index(), "_create", indexRequest.id())
: endpoint(indexRequest.index(), indexRequest.type(), indexRequest.id(), "_create");
} else {
endpoint = endpoint(indexRequest.index(), indexRequest.type(), indexRequest.id());
}
Request request = new Request(method, endpoint); Request request = new Request(method, endpoint);
Params parameters = new Params(request); Params parameters = new Params(request);
@ -362,7 +367,9 @@ public class RequestConverters {
} }
public static Request update(UpdateRequest updateRequest) { public static Request update(UpdateRequest updateRequest) {
String endpoint = endpoint(updateRequest.index(), updateRequest.type(), updateRequest.id(), "_update"); String endpoint = updateRequest.type().equals("_doc")
? endpoint(updateRequest.index(), "_update", updateRequest.id())
: endpoint(updateRequest.index(), updateRequest.type(), updateRequest.id(), "_update");
Request request = new Request(HttpMethod.POST.name(), endpoint); Request request = new Request(HttpMethod.POST.name(), endpoint);
Params parameters = new Params(request); Params parameters = new Params(request);
@ -500,8 +507,11 @@ public class RequestConverters {
} }
public static Request explain(ExplainRequest explainRequest) { public static Request explain(ExplainRequest explainRequest) {
String endpoint = explainRequest.type().equals("_doc")
? endpoint(explainRequest.index(), "_explain", explainRequest.id())
: endpoint(explainRequest.index(), explainRequest.type(), explainRequest.id(), "_explain");
Request request = new Request(HttpMethod.GET.name(), Request request = new Request(HttpMethod.GET.name(),
endpoint(explainRequest.index(), explainRequest.type(), explainRequest.id(), "_explain")); endpoint(explainRequest.index(), explainRequest.type(), explainRequest.id(), endpoint));
Params params = new Params(request); Params params = new Params(request);
params.withStoredFields(explainRequest.storedFields()); params.withStoredFields(explainRequest.storedFields());

View File

@ -375,7 +375,7 @@ public class ReactiveElasticsearchClientUnitTests {
}); });
URI uri = hostProvider.when(HOST).captureUri(); URI uri = hostProvider.when(HOST).captureUri();
assertThat(uri.getRawPath()).isEqualTo("/twitter/_doc/10/_create"); assertThat(uri.getRawPath()).isEqualTo("/twitter/_create/10");
} }
@Test // DATAES-488 @Test // DATAES-488
@ -439,7 +439,7 @@ public class ReactiveElasticsearchClientUnitTests {
hostProvider.when(HOST) // hostProvider.when(HOST) //
.receiveUpdateOk(); .receiveUpdateOk();
client.update(new UpdateRequest("twitter", "doc", "1").doc(Collections.singletonMap("user", "cstrobl"))).then() // client.update(new UpdateRequest("twitter", "1").doc(Collections.singletonMap("user", "cstrobl"))).then() //
.as(StepVerifier::create) // .as(StepVerifier::create) //
.verifyComplete(); .verifyComplete();
@ -449,7 +449,7 @@ public class ReactiveElasticsearchClientUnitTests {
}); });
URI uri = hostProvider.when(HOST).captureUri(); URI uri = hostProvider.when(HOST).captureUri();
assertThat(uri.getRawPath()).isEqualTo("/twitter/doc/1/_update"); assertThat(uri.getRawPath()).isEqualTo("/twitter/_update/1");
} }
@Test // DATAES-488 @Test // DATAES-488