The MessageSystem is based on Subject instead of Content (just semantics)

This commit is contained in:
Jonathan Bourdon
2024-07-06 22:36:22 -04:00
parent 256fa3df91
commit ca94dba08d
6 changed files with 88 additions and 10 deletions

View File

@@ -3,11 +3,9 @@
public class Message
{
public Guid Id { get; init; }
public Guid ContentId { get; init; } // works for any - VideoId, ChatId, RoomId, xxxId, ForumId
public Guid SubjectId { get; init; }
public Guid CreatedBy { get; init; }
public DateTime CreatedAt { get; }
public Guid ParentId { get; init; }
public string Value { get; init; } = null!;
}

View File

@@ -11,18 +11,18 @@ public class GetMessages(
public override void Configure()
{
Tags("Messages");
Get("/api/messages/{ContentId:guid}");
Get("/api/messages/{SubjectId:guid}");
AllowAnonymous();
}
public override async Task HandleAsync(
CancellationToken ct)
{
var contentId = Route<Guid>("ContentId");
var subjectId = Route<Guid>("SubjectId");
var comments = await context
.Messages
.Where(c => c.ContentId == contentId)
.Where(c => c.SubjectId == subjectId)
.ToListAsync(cancellationToken: ct);
await SendAsync(comments, cancellation: ct);

View File

@@ -5,7 +5,7 @@ using Hutopy.Web.Messages.Data;
namespace Hutopy.Web.Messages.Handlers;
public record PostMessageRequest(
Guid ContentId,
Guid SubjectId,
string Message);
public class PostMessage(
@@ -25,7 +25,7 @@ public class PostMessage(
{
await context.Messages.AddAsync(
new Message {
ContentId = req.ContentId,
SubjectId = req.SubjectId,
CreatedBy = User.GetUserId(),
Value = req.Message },
ct);

View File

@@ -5,7 +5,7 @@ using Hutopy.Web.Messages.Data;
namespace Hutopy.Web.Messages.Handlers;
public record PostReplyMessageRequest(
Guid ContentId,
Guid SubjectId,
Guid ParentId,
string Message);
@@ -26,7 +26,7 @@ public sealed class PostReplyMessage(
await context.Messages.AddAsync(
new Message
{
ContentId = req.ContentId,
SubjectId = req.SubjectId,
ParentId = req.ParentId,
CreatedBy = User.GetUserId(),
Value = req.Message