35 lines
963 B
C#
35 lines
963 B
C#
using System.Security.Claims;
|
|
using FastEndpoints;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace Knots.Endpoints.Discussion;
|
|
|
|
public class GetDiscussionMembersEndpoint(KnotsDbContext db) : EndpointWithoutRequest<List<string>>
|
|
{
|
|
public override void Configure()
|
|
{
|
|
Get("/discussions/{discussionId}/members");
|
|
}
|
|
|
|
public override async Task HandleAsync(CancellationToken ct)
|
|
{
|
|
int discussionId = Route<int>("discussionId");
|
|
|
|
Models.Discussion? discussion = await db.Discussions
|
|
.Include(d => d.UserDiscussions)
|
|
.ThenInclude(ud => ud.User)
|
|
.SingleOrDefaultAsync(d => d.Id == discussionId, ct);
|
|
|
|
if (discussion is null)
|
|
{
|
|
await SendNotFoundAsync(ct);
|
|
return;
|
|
}
|
|
|
|
List<string> members = discussion.UserDiscussions
|
|
.Select(ud => ud.User.Username!)
|
|
.ToList();
|
|
|
|
await SendOkAsync(members, ct);
|
|
}
|
|
} |