diff --git a/src/Web/Features/Contents/Handlers/GetContent.cs b/src/Web/Features/Contents/Handlers/GetContent.cs index 398d9c0..a097020 100644 --- a/src/Web/Features/Contents/Handlers/GetContent.cs +++ b/src/Web/Features/Contents/Handlers/GetContent.cs @@ -1,4 +1,5 @@ using Hutopy.Web.Features.Contents.Data; +using Hutopy.Web.Features.Contents.Handlers.Models; namespace Hutopy.Web.Features.Contents.Handlers; @@ -11,7 +12,7 @@ public sealed class GetContentRequest [PublicAPI] public class GetContent( ContentDbContext context) - : Endpoint + : Endpoint { public override void Configure() { @@ -26,6 +27,19 @@ public class GetContent( { var content = await context .Contents + .Select(c => new ContentModel + { + Id = c.Id, + CreatedBy = c.CreatedBy, + CreatedByName = c.Creator!.Name, + CreatedByPortraitUrl = c.Creator.Images.Logo, + CreatedAt = c.CreatedAt, + ColorMenu = c.Creator.Colors.Menu, + ColorAccent = c.Creator.Colors.Accent, + Title = c.Title, + Description = c.Description, + Urls = c.Urls, + }) .SingleOrDefaultAsync( c => c.Id == req.ContentId, cancellationToken: ct); diff --git a/src/Web/Features/Contents/Handlers/GetContentsByCreator.cs b/src/Web/Features/Contents/Handlers/GetContentsByCreator.cs index cba8624..983d902 100644 --- a/src/Web/Features/Contents/Handlers/GetContentsByCreator.cs +++ b/src/Web/Features/Contents/Handlers/GetContentsByCreator.cs @@ -30,10 +30,20 @@ public class GetContentsByCreatorHandler( { var queryBuilder = new StringBuilder(); queryBuilder.AppendLine($""" - SELECT content."Id", content."CreatedBy", creator."Name" as CreatedByName, i."Logo" as CreatedByPortraitUrl, content."CreatedAt", content."Title", content."Description", content."Urls" + SELECT content."Id", + content."CreatedBy", + creator."Name" as CreatedByName, + i."Logo" as CreatedByPortraitUrl, + c."Menu" as ColorMenu, + c."Accent" as ColorAccent, + content."CreatedAt", + content."Title", + content."Description", + content."Urls" FROM "Content"."Contents" AS content INNER JOIN "Content"."Creators" AS creator ON content."CreatedBy" = creator."Id" LEFT JOIN "Content"."Images" AS i ON creator."Id" = i."CreatorId" + LEFT JOIN "Content"."Colors" AS c ON creator."Id" = c."CreatorId" WHERE content."CreatedBy" = '{req.CreatorId}' """); diff --git a/src/Web/Features/Contents/Handlers/Models/ContentModel.cs b/src/Web/Features/Contents/Handlers/Models/ContentModel.cs index 123532a..f6cff02 100644 --- a/src/Web/Features/Contents/Handlers/Models/ContentModel.cs +++ b/src/Web/Features/Contents/Handlers/Models/ContentModel.cs @@ -7,6 +7,8 @@ public class ContentModel public required Guid CreatedBy { get; init; } public required string CreatedByName { get; init; } public required string? CreatedByPortraitUrl { get; init; } + public required string? ColorMenu { get; init; } + public required string? ColorAccent { get; init; } public required DateTimeOffset CreatedAt { get; init; } public required string Title { get; init; } public required string Description { get; init; }