GetOrders.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. using System.Security.Claims;
  2. using Application.Abstractions.Messaging;
  3. using Domain.Entities.Paper.ValueObject;
  4. using Web.Api.Common;
  5. using Web.Api.Extensions;
  6. namespace Web.Api.Endpoints.Paper;
  7. /// <summary>모의투자 — 주문·체결 내역.</summary>
  8. internal sealed class GetOrders : IEndpoint
  9. {
  10. public void MapEndpoint(IEndpointRouteBuilder app)
  11. {
  12. app.MapGet("api/paper/orders", async (
  13. PaperOrderStatus? status,
  14. int? page,
  15. ushort? perPage,
  16. ClaimsPrincipal user,
  17. ISender sender,
  18. CancellationToken ct
  19. ) => {
  20. var memberID = user.GetRequiredMemberID();
  21. var data = await sender.Send(new Application.Features.Api.Paper.GetOrders.Query(
  22. memberID,
  23. status,
  24. page is > 0 ? page.Value : 1,
  25. perPage is > 0 ? perPage.Value : (ushort)20
  26. ), ct);
  27. return ApiResponse.Ok(data);
  28. })
  29. .WithTags("Paper")
  30. .RequireAuthorization();
  31. }
  32. }