From 13db9bc1acf4e86ccb6ed762473014705e20f24d Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Tue, 4 Jul 2023 11:57:01 +0200 Subject: [PATCH] Add retract client API --- .../Extensions/DependencyInjectionExtensions.cs | 12 ++++++------ .../Contracts/IWorkflowDefinitionsApi.cs | 16 ++++++++++++++-- .../Models/RetractWorkflowDefinitionRequest.cs | 6 ++++++ 3 files changed, 26 insertions(+), 8 deletions(-) create mode 100644 src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/RetractWorkflowDefinitionRequest.cs diff --git a/src/clients/Elsa.Api.Client/Extensions/DependencyInjectionExtensions.cs b/src/clients/Elsa.Api.Client/Extensions/DependencyInjectionExtensions.cs index a5a14c777..fe88c1fce 100644 --- a/src/clients/Elsa.Api.Client/Extensions/DependencyInjectionExtensions.cs +++ b/src/clients/Elsa.Api.Client/Extensions/DependencyInjectionExtensions.cs @@ -82,19 +82,19 @@ public static class DependencyInjectionExtensions private static RefitSettings CreateRefitSettings(IServiceProvider serviceProvider) { - JsonSerializerOptions jsonSerializerSettings = new() + JsonSerializerOptions serializerOptions = new() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, }; - jsonSerializerSettings.Converters.Add(new JsonStringEnumConverter()); - jsonSerializerSettings.Converters.Add(new VersionOptionsJsonConverter()); - jsonSerializerSettings.Converters.Add(new ActivityJsonConverterFactory(serviceProvider)); - jsonSerializerSettings.Converters.Add(new ExpressionJsonConverterFactory()); + serializerOptions.Converters.Add(new JsonStringEnumConverter()); + serializerOptions.Converters.Add(new VersionOptionsJsonConverter()); + serializerOptions.Converters.Add(new ActivityJsonConverterFactory(serviceProvider)); + serializerOptions.Converters.Add(new ExpressionJsonConverterFactory()); var settings = new RefitSettings { - ContentSerializer = new SystemTextJsonContentSerializer(jsonSerializerSettings) + ContentSerializer = new SystemTextJsonContentSerializer(serializerOptions) }; return settings; 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 227ce2e78..5fc8e2e70 100644 --- a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Contracts/IWorkflowDefinitionsApi.cs +++ b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Contracts/IWorkflowDefinitionsApi.cs @@ -1,3 +1,4 @@ +using System.Net.Mime; using Elsa.Api.Client.Models; using Elsa.Api.Client.Resources.WorkflowDefinitions.Models; using JetBrains.Annotations; @@ -69,14 +70,16 @@ public interface IWorkflowDefinitionsApi /// The cancellation token. [Post("/workflow-definitions/{definitionId}/publish")] Task PublishAsync(string definitionId, CancellationToken cancellationToken = default); - + /// /// Retracts a workflow definition. /// /// The ID of the workflow definition to retract. + /// An empty object to satisfy the request body requirement. /// The cancellation token. [Post("/workflow-definitions/{definitionId}/retract")] - Task RetractAsync(string definitionId, CancellationToken cancellationToken = default); + [Headers(MediaTypeNames.Application.Json)] + Task RetractAsync(string definitionId, RetractWorkflowDefinitionRequest request, CancellationToken cancellationToken = default); /// /// Deletes many workflow definitions. @@ -110,4 +113,13 @@ public interface IWorkflowDefinitionsApi /// The cancellation token. [Get("/workflow-definitions/{definitionId}/export?versionOptions={versionOptions}")] Task> ExportAsync(string definitionId, VersionOptions? versionOptions = default, CancellationToken cancellationToken = default); + + /// + /// Imports a workflow definition. + /// + /// The model containing the workflow definition to import. + /// The cancellation token. + /// The imported workflow definition. + [Post("/workflow-definitions/import")] + Task ImportAsync(WorkflowDefinitionModel model, CancellationToken cancellationToken = default); } \ No newline at end of file diff --git a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/RetractWorkflowDefinitionRequest.cs b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/RetractWorkflowDefinitionRequest.cs new file mode 100644 index 000000000..5714b01c5 --- /dev/null +++ b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/RetractWorkflowDefinitionRequest.cs @@ -0,0 +1,6 @@ +namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Models; + +/// +/// Request to retract a workflow definition. +/// +public record RetractWorkflowDefinitionRequest(); \ No newline at end of file