CrewList.cs 913 B

123456789101112131415161718192021222324252627
  1. using Web.Api.Common;
  2. using MediatR;
  3. namespace Web.Api.Endpoints.Studio.Crew;
  4. /// <summary>크루 세션 목록 (스튜디오 전용)</summary>
  5. internal sealed class CrewList : IEndpoint
  6. {
  7. public void MapEndpoint(IEndpointRouteBuilder app)
  8. {
  9. /// 크루 후원 세션 목록 (날짜/금액/참여자 정렬, 페이징, 상태 포함)
  10. app.MapGet("api/studio/crew/list/{channelID}", async (
  11. int channelID,
  12. ISender sender,
  13. CancellationToken ct,
  14. string? sortBy = null,
  15. string? sortDir = null,
  16. int page = 1,
  17. ushort perPage = 20
  18. ) => {
  19. var data = await sender.Send(new Application.Features.Api.Crew.GetCrewList.Query(channelID, sortBy, sortDir, page, perPage), ct);
  20. return ApiResponse.Ok(data);
  21. })
  22. .WithTags("StudioCrew")
  23. .RequireAuthorization();
  24. }
  25. }