diff --git a/.code-samples.meilisearch.yaml b/.code-samples.meilisearch.yaml index 2d42497c..3991a1eb 100644 --- a/.code-samples.meilisearch.yaml +++ b/.code-samples.meilisearch.yaml @@ -70,6 +70,8 @@ get_all_tasks_1: |- client.getTasks(); get_task_1: |- client.getTask(1); +get_task_documents_1: |- + client.getTaskDocuments(1); delete_tasks_1: |- DeleteTasksQuery query = new DeleteTasksQuery().setUids(new int[] {1, 2}) client.deleteTasks(query); diff --git a/src/main/java/com/meilisearch/sdk/Client.java b/src/main/java/com/meilisearch/sdk/Client.java index 37e250eb..6b92b3ea 100644 --- a/src/main/java/com/meilisearch/sdk/Client.java +++ b/src/main/java/com/meilisearch/sdk/Client.java @@ -299,6 +299,19 @@ public Task getTask(int uid) throws MeilisearchException { return this.tasksHandler.getTask(uid); } + /** + * Retrieves the documents of a task with the specified uid + * + * @param uid Identifier of the requested Task + * @return Meilisearch API response as NDJSON String + * @throws MeilisearchException if an error occurs + * @see API + * specification + */ + public String getTaskDocuments(int uid) throws MeilisearchException { + return this.tasksHandler.getTaskDocuments(uid); + } + /** * Retrieves list of tasks * diff --git a/src/main/java/com/meilisearch/sdk/SearchRequest.java b/src/main/java/com/meilisearch/sdk/SearchRequest.java index 43e043cc..b70997f6 100644 --- a/src/main/java/com/meilisearch/sdk/SearchRequest.java +++ b/src/main/java/com/meilisearch/sdk/SearchRequest.java @@ -46,6 +46,7 @@ public class SearchRequest { protected Hybrid hybrid; protected Double[] vector; protected Boolean retrieveVectors; + /** * Constructor for SearchRequest for building search queries with the default values: offset: 0, * limit: 20, attributesToRetrieve: ["*"], attributesToCrop: null, cropLength: 200, diff --git a/src/main/java/com/meilisearch/sdk/SettingsHandler.java b/src/main/java/com/meilisearch/sdk/SettingsHandler.java index 1a20056b..ec8102f9 100644 --- a/src/main/java/com/meilisearch/sdk/SettingsHandler.java +++ b/src/main/java/com/meilisearch/sdk/SettingsHandler.java @@ -423,6 +423,7 @@ TaskInfo updateSortableAttributesSettings(String uid, String[] sortableAttribute : sortableAttributes, TaskInfo.class); } + /** * Resets the sortable attributes of the index * diff --git a/src/main/java/com/meilisearch/sdk/TasksHandler.java b/src/main/java/com/meilisearch/sdk/TasksHandler.java index 3692d919..e2e03cad 100644 --- a/src/main/java/com/meilisearch/sdk/TasksHandler.java +++ b/src/main/java/com/meilisearch/sdk/TasksHandler.java @@ -39,6 +39,20 @@ Task getTask(int taskUid) throws MeilisearchException { return httpClient.get(urlPath, Task.class); } + /** + * Retrieves the documents of a task with the specified task uid + * + * @param taskUid Identifier of the requested Task + * @return String (NDJSON) of documents processed by the task + * @throws MeilisearchException if client request causes an error + */ + String getTaskDocuments(int taskUid) throws MeilisearchException { + URLBuilder urlb = new URLBuilder(); + urlb.addSubroute("tasks").addSubroute(Integer.toString(taskUid)).addSubroute("documents"); + String urlPath = urlb.getURL(); + return httpClient.get(urlPath, String.class); + } + /** * Retrieves all tasks from the client * diff --git a/src/main/java/com/meilisearch/sdk/json/JacksonJsonHandler.java b/src/main/java/com/meilisearch/sdk/json/JacksonJsonHandler.java index 3031fa6d..29d269b1 100644 --- a/src/main/java/com/meilisearch/sdk/json/JacksonJsonHandler.java +++ b/src/main/java/com/meilisearch/sdk/json/JacksonJsonHandler.java @@ -29,7 +29,9 @@ public JacksonJsonHandler() { registerFilterableAttributesModule(this.mapper); } - /** @param mapper ObjectMapper */ + /** + * @param mapper ObjectMapper + */ public JacksonJsonHandler(ObjectMapper mapper) { this.mapper = mapper; registerFilterableAttributesModule(this.mapper); diff --git a/src/test/java/com/meilisearch/integration/ClientTest.java b/src/test/java/com/meilisearch/integration/ClientTest.java index 62a31311..0dfad088 100644 --- a/src/test/java/com/meilisearch/integration/ClientTest.java +++ b/src/test/java/com/meilisearch/integration/ClientTest.java @@ -376,4 +376,25 @@ public void testCompactWithDocuments() throws Exception { assertThat(index.getDocument("1", Movie.class).getTitle(), is(equalTo("Document1"))); assertThat(index.getDocument("2", Movie.class).getTitle(), is(equalTo("Document2"))); } + + /** Test getTaskDocuments */ + @Test + public void testGetTaskDocuments() throws Exception { + String indexUid = "GetTaskDocuments"; + Index index = createEmptyIndex(indexUid, this.primaryKey); + + TaskInfo addTask = + index.addDocuments("[{" + "\"id\": 1," + "\"title\": \"Document1\"" + "}]"); + index.waitForTask(addTask.getTaskUid()); + String taskDocuments = client.getTaskDocuments(addTask.getTaskUid()); + + assertThat(taskDocuments, is(notNullValue())); + String[] lines = taskDocuments.split("\n"); + assertThat(lines.length, is(greaterThan(0))); + JsonObject firstDocument = JsonParser.parseString(lines[0]).getAsJsonObject(); + assertThat(firstDocument.has("id"), is(true)); + assertThat(firstDocument.has("title"), is(true)); + assertThat(firstDocument.get("id").getAsInt(), is(equalTo(1))); + assertThat(firstDocument.get("title").getAsString(), is(equalTo("Document1"))); + } }