Add retract client API

This commit is contained in:
Sipke Schoorstra 2023-07-04 11:57:01 +02:00
parent 4c2ae330f2
commit 13db9bc1ac
3 changed files with 26 additions and 8 deletions

View file

@ -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;

View file

@ -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
/// <param name="cancellationToken">The cancellation token.</param>
[Post("/workflow-definitions/{definitionId}/publish")]
Task<WorkflowDefinition> PublishAsync(string definitionId, CancellationToken cancellationToken = default);
/// <summary>
/// Retracts a workflow definition.
/// </summary>
/// <param name="definitionId">The ID of the workflow definition to retract.</param>
/// <param name="request">An empty object to satisfy the request body requirement.</param>
/// <param name="cancellationToken">The cancellation token.</param>
[Post("/workflow-definitions/{definitionId}/retract")]
Task<WorkflowDefinition> RetractAsync(string definitionId, CancellationToken cancellationToken = default);
[Headers(MediaTypeNames.Application.Json)]
Task<WorkflowDefinition> RetractAsync(string definitionId, RetractWorkflowDefinitionRequest request, CancellationToken cancellationToken = default);
/// <summary>
/// Deletes many workflow definitions.
@ -110,4 +113,13 @@ public interface IWorkflowDefinitionsApi
/// <param name="cancellationToken">The cancellation token.</param>
[Get("/workflow-definitions/{definitionId}/export?versionOptions={versionOptions}")]
Task<IApiResponse<Stream>> ExportAsync(string definitionId, VersionOptions? versionOptions = default, CancellationToken cancellationToken = default);
/// <summary>
/// Imports a workflow definition.
/// </summary>
/// <param name="model">The model containing the workflow definition to import.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>The imported workflow definition.</returns>
[Post("/workflow-definitions/import")]
Task<WorkflowDefinition> ImportAsync(WorkflowDefinitionModel model, CancellationToken cancellationToken = default);
}

View file

@ -0,0 +1,6 @@
namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Models;
/// <summary>
/// Request to retract a workflow definition.
/// </summary>
public record RetractWorkflowDefinitionRequest();