Creators.cs 843 B

12345678910111213141516171819202122232425
  1. using Web.Api.Common;
  2. using Web.Api.Extensions;
  3. using Application.Abstractions.Messaging;
  4. namespace Web.Api.Endpoints.Channel;
  5. /// <summary>크리에이터(채널) 목록 — 크리에이터 탐색 페이지용 (검색·정렬·무작위는 프론트에서 처리)</summary>
  6. internal sealed class Creators : IEndpoint
  7. {
  8. public void MapEndpoint(IEndpointRouteBuilder app)
  9. {
  10. app.MapGet("api/channel/creators", async (ISender sender, CancellationToken ct) =>
  11. {
  12. var result = await sender.Send(new Application.Features.Api.Channel.GetCreators.Query(), ct);
  13. return result.Match(
  14. () => ApiResponse.Ok(result.Value),
  15. CustomResults.Problem
  16. );
  17. })
  18. .WithTags("Channel")
  19. .AllowAnonymous()
  20. .RequireFeature(c => c.Channel);
  21. }
  22. }