using FastEndpoints; using MediatR; using Workflow.Application.Features.WorkflowDefinitions.Commands; namespace Workflow.Api.Endpoints.WorkflowDefinition; public class PublishWorkflowDefinitionEndpoint : Endpoint { private readonly IMediator _mediator; public PublishWorkflowDefinitionEndpoint(IMediator mediator) => _mediator = mediator; public override void Configure() { Post("/workflow-definitions/{Id}/publish"); AllowAnonymous(); Summary(s => { s.Summary = "Publish a workflow definition"; }); } public override async Task HandleAsync(PublishWorkflowDefinitionRequest req, CancellationToken ct) { var command = new PublishWorkflowDefinitionCommand(req.Id); await _mediator.Send(command, ct); await SendOkAsync(ct); } } public class PublishWorkflowDefinitionRequest { public Guid Id { get; set; } }