From 4f229ee12fcb81d69927b898cb257fc77ef6828c Mon Sep 17 00:00:00 2001 From: Ziyi Date: Fri, 29 Aug 2025 23:00:35 +1000 Subject: [PATCH 1/2] Add reverse as a parameter to fetch and sort tasks by the time enqueued --- src/Meilisearch/Index.Tasks.cs | 12 ++++++++++-- tests/Meilisearch.Tests/TaskInfoTests.cs | 15 +++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/Meilisearch/Index.Tasks.cs b/src/Meilisearch/Index.Tasks.cs index 0d7f1c8b..a24a9aff 100644 --- a/src/Meilisearch/Index.Tasks.cs +++ b/src/Meilisearch/Index.Tasks.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -13,15 +14,22 @@ public partial class Index /// /// Query parameters supports by the method. /// The cancellation token for this call. + /// Whether to reverse the order of the tasks by EnqueuedAt. /// Returns a list of the operations status. - public async Task>> GetTasksAsync(TasksQuery query = null, CancellationToken cancellationToken = default) + public async Task>> GetTasksAsync(TasksQuery query = null, CancellationToken cancellationToken = default, bool reverseOrder = false) { if (query == null) { query = new TasksQuery { IndexUids = new List { this.Uid } }; } - return await TaskEndpoint().GetTasksAsync(query, cancellationToken).ConfigureAwait(false); + var tasks = await TaskEndpoint().GetTasksAsync(query, cancellationToken).ConfigureAwait(false); + + return reverseOrder ? new TasksResults>(tasks.Results.OrderBy(t => t.EnqueuedAt), + tasks.Limit, + tasks.From, + tasks.Next, + tasks.Total) : tasks; } /// diff --git a/tests/Meilisearch.Tests/TaskInfoTests.cs b/tests/Meilisearch.Tests/TaskInfoTests.cs index f5cb51bb..ee40fa6d 100644 --- a/tests/Meilisearch.Tests/TaskInfoTests.cs +++ b/tests/Meilisearch.Tests/TaskInfoTests.cs @@ -103,5 +103,20 @@ public async Task WaitForTaskWithException() var task = await _index.AddDocumentsAsync(new[] { new Movie { Id = "5" } }); await Assert.ThrowsAsync(() => _index.WaitForTaskAsync(task.TaskUid, 0.0, 20)); } + + [Fact] + public async Task ReverseTasksByEnqueuedAt() + { + var task1 = await _index.AddDocumentsAsync(new[] { new Movie { Id = "6" } }); + var task2 = await _index.AddDocumentsAsync(new[] { new Movie { Id = "7" } }); + var task3 = await _index.AddDocumentsAsync(new[] { new Movie { Id = "8" } }); + + var tasks = await _index.GetTasksAsync(reverseOrder: true); + var results = tasks.Results.ToList(); + + tasks.Should().NotBeNull(); + results.First().IndexUid.Should().Be(task3.IndexUid); + results.Select(t => t.EnqueuedAt).Should().BeInAscendingOrder(); + } } } From a84c702e83343ab0070f7bfab4bb78ce304f2b17 Mon Sep 17 00:00:00 2001 From: ziyieses <125427090+ziyieses@users.noreply.github.com> Date: Sat, 30 Aug 2025 07:58:07 +1000 Subject: [PATCH 2/2] Update tests/Meilisearch.Tests/TaskInfoTests.cs Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- tests/Meilisearch.Tests/TaskInfoTests.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/Meilisearch.Tests/TaskInfoTests.cs b/tests/Meilisearch.Tests/TaskInfoTests.cs index ee40fa6d..01e8691d 100644 --- a/tests/Meilisearch.Tests/TaskInfoTests.cs +++ b/tests/Meilisearch.Tests/TaskInfoTests.cs @@ -115,8 +115,6 @@ public async Task ReverseTasksByEnqueuedAt() var results = tasks.Results.ToList(); tasks.Should().NotBeNull(); - results.First().IndexUid.Should().Be(task3.IndexUid); - results.Select(t => t.EnqueuedAt).Should().BeInAscendingOrder(); - } + results.Select(t => t.EnqueuedAt).Should().BeInDescendingOrder(); } }