MyWallet.cs 835 B

12345678910111213141516171819202122232425262728293031
  1. using System.Security.Claims;
  2. using MediatR;
  3. using Web.Api.Common;
  4. using Web.Api.Extensions;
  5. namespace Web.Api.Endpoints.Wallet;
  6. internal sealed class MyWallet : IEndpoint
  7. {
  8. public void MapEndpoint(IEndpointRouteBuilder app)
  9. {
  10. app.MapGet("api/wallet", async (
  11. ClaimsPrincipal user,
  12. ISender sender,
  13. CancellationToken ct
  14. ) => {
  15. var memberID = user.GetMemberID();
  16. if (memberID is null)
  17. {
  18. return ApiResponse.Fail(StatusCodes.Status401Unauthorized, "Invalid token");
  19. }
  20. var result = await sender.Send(new Application.Features.Api.Member.Wallet.GetMy.Query(memberID.Value), ct);
  21. return ApiResponse.Ok(result);
  22. })
  23. .WithTags("Wallet")
  24. .RequireAuthorization();
  25. }
  26. }