summaryrefslogtreecommitdiffstats
path: root/vespaclient-container-plugin
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2020-11-02 16:53:24 +0100
committerJon Marius Venstad <venstad@gmail.com>2020-11-02 16:53:24 +0100
commitfbc26a2e19461952f82c2f24224ae3a3a4c4d29c (patch)
tree24d4044f4d6aac3f1e08d62a33c0392fa3990587 /vespaclient-container-plugin
parentfd229417d0f7bb65fa1b6c428c49dfbbe6f86edc (diff)
Use field set of document type when not set, for document GETs
Diffstat (limited to 'vespaclient-container-plugin')
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java6
-rw-r--r--vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java4
2 files changed, 6 insertions, 4 deletions
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
index 8287b6f1630..35f3a5d4057 100644
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
+++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
@@ -311,8 +311,10 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler {
private ContentChannel getDocument(HttpRequest request, DocumentPath path, ResponseHandler handler) {
enqueueAndDispatch(request, handler, () -> {
- DocumentOperationParameters parameters = parametersFromRequest(request, CLUSTER, FIELD_SET)
- .withResponseHandler(response -> {
+ DocumentOperationParameters rawParameters = parametersFromRequest(request, CLUSTER, FIELD_SET);
+ if (rawParameters.fieldSet().isEmpty())
+ rawParameters = rawParameters.withFieldSet(path.documentType().orElseThrow() + ":[document]");
+ DocumentOperationParameters parameters = rawParameters.withResponseHandler(response -> {
handle(path, handler, response, (document, jsonResponse) -> {
if (document != null) {
jsonResponse.writeSingleDocument(document);
diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
index c85db0582eb..2775250765f 100644
--- a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
+++ b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
@@ -289,7 +289,7 @@ public class DocumentV1ApiTest {
// GET with full document ID is a document get operation.
access.session.expect((id, parameters) -> {
assertEquals(doc1.getId(), id);
- assertEquals(parameters(), parameters);
+ assertEquals(parameters().withFieldSet("music:[document]"), parameters);
parameters.responseHandler().get().handleResponse(new DocumentResponse(0, doc1));
return new Result(Result.ResultType.SUCCESS, null);
});
@@ -306,7 +306,7 @@ public class DocumentV1ApiTest {
// GET with not encoded / in user specified part of document id is perfectly OK ... щ(ಥДಥщ)
access.session.expect((id, parameters) -> {
assertEquals(new DocumentId("id:space:music::one/two/three"), id);
- assertEquals(parameters(), parameters);
+ assertEquals(parameters().withFieldSet("music:[document]"), parameters);
parameters.responseHandler().get().handleResponse(new DocumentResponse(0));
return new Result(Result.ResultType.SUCCESS, null);
});