xiangning 3d5604d80c feat(scripting): 完整 CQRS 层 + 10 个管理端点
Commands: Create/Update/Delete/Publish/Disable/Test/Invoke
Queries:  List/Detail/ExecutionLogs
DTOs:     ScriptDto/ScriptExecutionLogDto + PagedResult
Endpoints (GET/POST/PUT/DELETE /scripts/*):
  - GET    /scripts              scripts.read
  - GET    /scripts/{id}         scripts.read
  - POST   /scripts              scripts.create
  - PUT    /scripts/{id}         scripts.update
  - DELETE /scripts/{id}         scripts.delete
  - POST   /scripts/{id}/publish scripts.publish
  - POST   /scripts/{id}/disable scripts.disable
  - POST   /scripts/{id}/test    scripts.test
  - GET    /scripts/{id}/logs    scripts.read
  - POST   /scripts/{name}/invoke scripts.run

Task T5 of scripting module refactor
2026-07-07 09:26:54 +08:00

23 lines
697 B
C#

using MediatR;
using Scripting.Application.Commands;
using Scripting.Application.DTOs;
namespace BuildFlow.Host.Endpoints.Scripting;
/// <summary>发布脚本端点。POST /scripts/{id}/publish。需 scripts.publish 权限。</summary>
public class PublishScriptEndpoint(IMediator mediator)
: Endpoint<PublishScriptRequest, ScriptDto>
{
public override void Configure()
{
Post("/scripts/{id}/publish");
Permissions("scripts.publish");
}
public override async Task HandleAsync(PublishScriptRequest req, CancellationToken ct)
{
var result = await mediator.Send(new PublishScriptCommand(req.Id), ct);
await Send.OkAsync(result, ct);
}
}