xiangning 81fbf63504 feat(workflow): 集成平台消息中心实现工作流通知推送
- 移除文件端点的权限控制以支持无权限访问
- 添加 IPlatformNotificationPublisher 接口定义跨模块通知发布能力
- 实现 WorkflowNotificationPublisher 将工作流通知转发到平台消息中心
- 在 NotificationService 中集成平台通知发布功能
- 添加 NoOpPlatformNotificationPublisher 用于单元测试
- 配置服务注册将工作流通知连接到平台消息系统
- 支持按用户ID批量发布工作流通知到平台通知表
- 复用平台的 fanout 落库和 SignalR 铃铛推送机制
- 实现容错机制确保通知失败不影响工作流主链路
2026-07-03 16:33:46 +08:00

30 lines
964 B
C#

using File.Application.Features.Shares.Commands;
using File.Application.Features.Shares.DTOs;
using MediatR;
namespace BuildFlow.Host.Endpoints.file.Shares;
/// <summary>创建分享链接端点。POST /api/share。</summary>
[Authorize]
/// <summary>
/// undefined
/// </summary>
public class CreateShareEndpoint(IMediator mediator) : Endpoint<CreateShareRequest, ShareLinkDto>
{
public override void Configure()
{
Post("/share");
}
public override async Task HandleAsync(CreateShareRequest req, CancellationToken ct)
{
var expiresAt = string.IsNullOrEmpty(req.ExpiresAt)
? (DateTime?)null
: DateTime.Parse(req.ExpiresAt, null, System.Globalization.DateTimeStyles.RoundtripKind);
var result = await mediator.Send(new CreateShareCommand(req.ResourceType,
Guid.Parse(req.ResourceId), req.Password, expiresAt, req.MaxDownloads), ct);
await Send.OkAsync(result, ct);
}
}