using Hutopy.Web.Features.Contents.Data; namespace Hutopy.Web.Features.Contents.Handlers; [PublicAPI] public sealed class RemoveReactionRequest { public required Guid ContentId { get; set; } public required Guid UserId { get; set; } } [PublicAPI] public class RemoveReaction( ContentDbContext context) : Endpoint { public override void Configure() { Post("/api/content/reaction/remove"); Options(o => o.WithTags("Contents")); } public override async Task HandleAsync( RemoveReactionRequest req, CancellationToken ct) { var content = await context.Contents .SingleAsync(x => x.Id == req.ContentId, ct); var reaction = content.Reactions.Single(x => x.UserId == req.UserId); content.Reactions.Remove(reaction); await context.SaveChangesAsync(ct); } }