using BuildFlow.Shared.Domain.Common;
using IM.Application.Chat.Commands;
using MediatR;
namespace BuildFlow.Host.Endpoints.IM.Chat;
///
/// 解散群组端点。DELETE /groups/{GroupId}。
///
public class DeleteGroupEndpoint(IMediator mediator, ICurrentUserContext userContext) : Endpoint
{
public override void Configure()
{
Delete("/groups/{GroupId}");
Permissions("im:group:manage");
}
public override async Task HandleAsync(DeleteGroupEndpointRequest req, CancellationToken ct)
{
var userId = userContext.GetRequiredUserGuid();
await mediator.Send(new DeleteGroupCommand(req.GroupId, userId), ct);
HttpContext.Response.StatusCode = 204;
}
}