From 9971f94fb86de1b5dd15d706eb8745d1b5d94a82 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Mon, 3 Jul 2023 22:55:21 +0200 Subject: [PATCH] Update bulk publish APIs and clients --- .../Contracts/IWorkflowDefinitionsApi.cs | 10 ++++++++- ...> BulkDeleteWorkflowDefinitionsRequest.cs} | 6 +++--- ... BulkDeleteWorkflowDefinitionsResponse.cs} | 2 +- .../BulkPublishWorkflowDefinitionsRequest.cs | 21 +++++++++++++++++++ .../BulkPublishWorkflowDefinitionsResponse.cs | 9 ++++++++ .../workflow-definitions/services/api.ts | 4 ++-- .../BulkPublish/Endpoint.cs | 2 +- .../WorkflowDefinitions/BulkPublish/Models.cs | 4 ++-- .../BulkRetract/Endpoint.cs | 2 +- 9 files changed, 49 insertions(+), 11 deletions(-) rename src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/{DeleteManyWorkflowDefinitionsRequest.cs => BulkDeleteWorkflowDefinitionsRequest.cs} (75%) rename src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/{DeleteManyWorkflowDefinitionsResponse.cs => BulkDeleteWorkflowDefinitionsResponse.cs} (78%) create mode 100644 src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/BulkPublishWorkflowDefinitionsRequest.cs create mode 100644 src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/BulkPublishWorkflowDefinitionsResponse.cs diff --git a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Contracts/IWorkflowDefinitionsApi.cs b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Contracts/IWorkflowDefinitionsApi.cs index 9813c9a79..66ec28614 100644 --- a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Contracts/IWorkflowDefinitionsApi.cs +++ b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Contracts/IWorkflowDefinitionsApi.cs @@ -68,7 +68,15 @@ public interface IWorkflowDefinitionsApi /// The request containing the IDs of the workflow definitions to delete. /// The cancellation token. [Post("/bulk-actions/delete/workflow-definitions/by-definition-id")] - Task DeleteManyAsync(DeleteManyWorkflowDefinitionsRequest request, CancellationToken cancellationToken = default); + Task BulkDeleteAsync(BulkDeleteWorkflowDefinitionsRequest request, CancellationToken cancellationToken = default); + + /// + /// Publishes many workflow definitions. + /// + /// The request containing the IDs of the workflow definitions to publish. + /// The cancellation token. + [Post("/bulk-actions/publish/workflow-definitions/by-definition-ids")] + Task BulkPublishAsync(BulkPublishWorkflowDefinitionsRequest request, CancellationToken cancellationToken = default); /// /// Exports a workflow definition. diff --git a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/DeleteManyWorkflowDefinitionsRequest.cs b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/BulkDeleteWorkflowDefinitionsRequest.cs similarity index 75% rename from src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/DeleteManyWorkflowDefinitionsRequest.cs rename to src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/BulkDeleteWorkflowDefinitionsRequest.cs index 78de30900..ada15c150 100644 --- a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/DeleteManyWorkflowDefinitionsRequest.cs +++ b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/BulkDeleteWorkflowDefinitionsRequest.cs @@ -3,13 +3,13 @@ namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Models; /// /// A request to delete many workflow definitions. /// -public class DeleteManyWorkflowDefinitionsRequest +public class BulkDeleteWorkflowDefinitionsRequest { /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The IDs of the workflow definitions to delete. - public DeleteManyWorkflowDefinitionsRequest(IEnumerable definitionIds) + public BulkDeleteWorkflowDefinitionsRequest(IEnumerable definitionIds) { DefinitionIds = definitionIds.ToArray(); } diff --git a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/DeleteManyWorkflowDefinitionsResponse.cs b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/BulkDeleteWorkflowDefinitionsResponse.cs similarity index 78% rename from src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/DeleteManyWorkflowDefinitionsResponse.cs rename to src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/BulkDeleteWorkflowDefinitionsResponse.cs index 64dced1d4..d6b31ddf4 100644 --- a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/DeleteManyWorkflowDefinitionsResponse.cs +++ b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/BulkDeleteWorkflowDefinitionsResponse.cs @@ -4,4 +4,4 @@ namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Models; /// The response from a request to delete workflow definitions. /// /// The number of workflow definitions deleted. -public record DeleteManyWorkflowDefinitionsResponse(long Deleted); \ No newline at end of file +public record BulkDeleteWorkflowDefinitionsResponse(long Deleted); \ No newline at end of file diff --git a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/BulkPublishWorkflowDefinitionsRequest.cs b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/BulkPublishWorkflowDefinitionsRequest.cs new file mode 100644 index 000000000..fef97abe9 --- /dev/null +++ b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/BulkPublishWorkflowDefinitionsRequest.cs @@ -0,0 +1,21 @@ +namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Models; + +/// +/// A request to publish many workflow definitions. +/// +public class BulkPublishWorkflowDefinitionsRequest +{ + /// + /// Initializes a new instance of the class. + /// + /// The IDs of the workflow definitions to delete. + public BulkPublishWorkflowDefinitionsRequest(IEnumerable definitionIds) + { + DefinitionIds = definitionIds.ToArray(); + } + + /// + /// Gets or sets the IDs of the workflow definitions to delete. + /// + public string[] DefinitionIds { get; set; } +} \ No newline at end of file diff --git a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/BulkPublishWorkflowDefinitionsResponse.cs b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/BulkPublishWorkflowDefinitionsResponse.cs new file mode 100644 index 000000000..e52d7eccb --- /dev/null +++ b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/BulkPublishWorkflowDefinitionsResponse.cs @@ -0,0 +1,9 @@ +namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Models; + +/// +/// The response from a request to publish workflow definitions. +/// +public record BulkPublishWorkflowDefinitionsResponse( + ICollection Published, + ICollection AlreadyPublished, + ICollection NotFound); \ No newline at end of file diff --git a/src/designer/designer_packages/elsa-workflows-designer/src/modules/workflow-definitions/services/api.ts b/src/designer/designer_packages/elsa-workflows-designer/src/modules/workflow-definitions/services/api.ts index 74826ea3c..a529fc309 100644 --- a/src/designer/designer_packages/elsa-workflows-designer/src/modules/workflow-definitions/services/api.ts +++ b/src/designer/designer_packages/elsa-workflows-designer/src/modules/workflow-definitions/services/api.ts @@ -162,7 +162,7 @@ export class WorkflowDefinitionsApi { async publishMany(request: PublishManyWorkflowDefinitionRequest): Promise { const httpClient = await this.getHttpClient(); - const response = await httpClient.post(`/bulk-actions/publish/workflow-definitions/by-definition-id`, { + const response = await httpClient.post(`/bulk-actions/publish/workflow-definitions/by-definition-ids`, { definitionIds: request.definitionIds, }); return response.data; @@ -170,7 +170,7 @@ export class WorkflowDefinitionsApi { async unpublishMany(request: UnpublishManyWorkflowDefinitionRequest): Promise { const httpClient = await this.getHttpClient(); - const response = await httpClient.post(`/bulk-actions/retract/workflow-definitions/by-definition-id`, { + const response = await httpClient.post(`/bulk-actions/retract/workflow-definitions/by-definition-ids`, { definitionIds: request.definitionIds, }); return response.data; diff --git a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/BulkPublish/Endpoint.cs b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/BulkPublish/Endpoint.cs index 82d598a9e..af605dda1 100644 --- a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/BulkPublish/Endpoint.cs +++ b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/BulkPublish/Endpoint.cs @@ -20,7 +20,7 @@ internal class BulkPublish : ElsaEndpoint public override void Configure() { - Post("/bulk-actions/publish/workflow-definitions/by-definition-id"); + Post("/bulk-actions/publish/workflow-definitions/by-definition-ids"); ConfigurePermissions("publish:workflow-definitions"); } diff --git a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/BulkPublish/Models.cs b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/BulkPublish/Models.cs index 4f53f6e1c..8ffa665e5 100644 --- a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/BulkPublish/Models.cs +++ b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/BulkPublish/Models.cs @@ -1,11 +1,11 @@ namespace Elsa.Workflows.Api.Endpoints.WorkflowDefinitions.BulkPublish; -public class Request +internal class Request { public ICollection DefinitionIds { get; set; } = default!; } -public class Response +internal class Response { public Response(ICollection published, ICollection alreadyPublished, ICollection notFound) { diff --git a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/BulkRetract/Endpoint.cs b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/BulkRetract/Endpoint.cs index 70089a894..602351878 100644 --- a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/BulkRetract/Endpoint.cs +++ b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/BulkRetract/Endpoint.cs @@ -20,7 +20,7 @@ internal class BulkRetract : ElsaEndpoint public override void Configure() { - Post("/bulk-actions/retract/workflow-definitions/by-definition-id"); + Post("/bulk-actions/retract/workflow-definitions/by-definition-ids"); ConfigurePermissions("retract:workflow-definitions"); }