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); } }