RemoteCrewMembers.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. using Web.Api.Common;
  2. using Web.Api.Extensions;
  3. using MediatR;
  4. using System.Security.Claims;
  5. namespace Web.Api.Endpoints.Donation;
  6. /// <summary>리모콘 — 특정 크루의 멤버 목록 + 활성 세션 ID</summary>
  7. internal sealed class RemoteCrewMembers : IEndpoint
  8. {
  9. public void MapEndpoint(IEndpointRouteBuilder app)
  10. {
  11. app.MapGet("api/donation/remote/crews/{widgetToken}/{crewID:int}/members", async (
  12. string widgetToken,
  13. int crewID,
  14. ClaimsPrincipal user,
  15. ISender sender,
  16. CancellationToken ct
  17. ) => {
  18. var memberID = user.GetRequiredMemberID();
  19. var result = await sender.Send(new Application.Features.Api.DonationRemote.GetCrewMembers.Query(widgetToken, crewID, memberID), ct);
  20. if (result.IsFailure)
  21. {
  22. return CustomResults.Problem(result);
  23. }
  24. return ApiResponse.Ok(result.Value);
  25. })
  26. .WithTags("DonationRemote")
  27. .RequireAuthorization();
  28. }
  29. }