using Hutopy.Modules.Messaging.Data; using Hutopy.Modules.Messaging.Models; namespace Hutopy.Modules.Messaging.Handlers; [PublicAPI] public class GetRepliesRequest { public Guid SubjectId { get; set; } public Guid ParentId { get; set; } [BindFrom("page_size")] public int PageSize { get; set; } = 10; [BindFrom("last_id")] public Guid? LastId { get; set; } } [PublicAPI] public record struct GetRepliesResponse( IEnumerable Messages); public class GetReplies( MessagingDbContext context) : Endpoint { public override void Configure() { Get("/api/messages/{ParentId:guid}/replies"); Options(o => o.WithTags("Messages")); AllowAnonymous(); } public override async Task HandleAsync( GetRepliesRequest req, CancellationToken ct) { IEnumerable replies = await context.GetMessagesAsync( req.SubjectId, req.ParentId, req.LastId, req.PageSize, ct); await SendOkAsync(new GetRepliesResponse(replies), ct); } }