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
23 lines
697 B
C#
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);
|
|
}
|
|
}
|