using MediatR;
using Workflow.Application.Features.WorkflowTasks.Commands;
namespace BuildFlow.Host.Endpoints.Workflow.WorkflowTask;
///
/// 驳回任务端点。转 Rejected 终态,按 Rejected 边流转(若无则结束实例)。
///
public class RejectTaskEndpoint : Endpoint
{
private readonly IMediator _mediator;
public RejectTaskEndpoint(IMediator mediator) => _mediator = mediator;
public override void Configure()
{
Post("/workflow-tasks/{Id}/reject");
Permissions("workflow-task:reject");
Summary(s =>
{
s.Summary = "Reject a pending task";
});
}
public override async Task HandleAsync(RejectTaskRequest req, CancellationToken ct)
{
var command = new RejectTaskCommand(req.Id, req.UserId, req.Comment);
await _mediator.Send(command, ct);
await Send.OkAsync(true, ct);
}
}