using BuildFlow.Platform.Application.Menus.Commands;
using BuildFlow.Platform.Application.Menus.DTOs;
using MediatR;
namespace BuildFlow.Host.Endpoints.Platform.Menus;
///
/// 创建菜单端点。
///
public class CreateMenuEndpoint(IMediator mediator) : Endpoint
{
public override void Configure()
{
Post("/menus");
Permissions("menu:create");
}
public override async Task HandleAsync(CreateMenuRequest req, CancellationToken ct)
{
var result = await mediator.Send(new CreateMenuCommand
{
ParentId = req.ParentId,
Name = req.Name,
Path = req.Path,
Component = req.Component,
Redirect = req.Redirect,
Title = req.Title,
Code = req.Code,
Icon = req.Icon,
ActiveIcon = req.ActiveIcon,
Order = req.Order,
HideInMenu = req.HideInMenu,
KeepAlive = req.KeepAlive,
AffixTab = req.AffixTab,
Link = req.Link,
NoBasicLayout = req.NoBasicLayout,
MenuVisibleWithForbidden = req.MenuVisibleWithForbidden,
Authority = req.Authority,
}, ct);
await Send.ResponseAsync(result, 201, ct);
}
}