From a9eb326c5e798b3d14712744ff9ff47c8b40e979 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Fri, 7 Mar 2025 10:04:41 +0100 Subject: [PATCH] Update bulk delete endpoints and request model Refactor the bulk delete endpoint to include a new primary route while deprecating the old one. Expand the request model to support workflow definition filters and adjust response instantiation for clarity. Update obsolete API route prefix guidance for consistency across modules. --- .../Elsa.Http/Options/HttpActivityOptions.cs | 2 +- .../WorkflowInstances/BulkDelete/Endpoint.cs | 14 +++++++++++--- .../WorkflowInstances/BulkDelete/Models.cs | 4 +++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/modules/Elsa.Http/Options/HttpActivityOptions.cs b/src/modules/Elsa.Http/Options/HttpActivityOptions.cs index b7b1b3ae1..2080c0068 100644 --- a/src/modules/Elsa.Http/Options/HttpActivityOptions.cs +++ b/src/modules/Elsa.Http/Options/HttpActivityOptions.cs @@ -20,7 +20,7 @@ public class HttpActivityOptions /// /// The prefix used for API routes. /// - [Obsolete("Use ElsaApiOptions from Elsa.Workflows.Api instead.")] + [Obsolete("Use ApiEndpointOptions from Elsa.Workflows.Api instead.")] public string ApiRoutePrefix { get; set; } = "elsa/api"; /// diff --git a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowInstances/BulkDelete/Endpoint.cs b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowInstances/BulkDelete/Endpoint.cs index aadf329cd..b05f39821 100644 --- a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowInstances/BulkDelete/Endpoint.cs +++ b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowInstances/BulkDelete/Endpoint.cs @@ -10,15 +10,23 @@ internal class BulkDelete(IWorkflowInstanceManager store) : ElsaEndpoint ExecuteAsync(Request request, CancellationToken cancellationToken) { - var filter = new WorkflowInstanceFilter { Ids = request.Ids }; + var filter = new WorkflowInstanceFilter + { + Ids = request.Ids, + DefinitionId = request.WorkflowDefinitionId, + DefinitionIds = request.WorkflowDefinitionIds, + }; var count = await store.BulkDeleteAsync(filter, cancellationToken); - return new Response(count); + return new(count); } } \ No newline at end of file diff --git a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowInstances/BulkDelete/Models.cs b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowInstances/BulkDelete/Models.cs index b58697cc1..0d2f37b2f 100644 --- a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowInstances/BulkDelete/Models.cs +++ b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowInstances/BulkDelete/Models.cs @@ -4,7 +4,9 @@ namespace Elsa.Workflows.Api.Endpoints.WorkflowInstances.BulkDelete; internal class Request { - public ICollection Ids { get; set; } = default!; + public ICollection? Ids { get; set; } + public string? WorkflowDefinitionId { get; set; } + public ICollection? WorkflowDefinitionIds { get; set; } } internal class Response(long deletedCount)