Get.cs 818 B

123456789101112131415161718192021222324252627
  1. using MediatR;
  2. using Web.Api.Common;
  3. using Web.Api.Extensions;
  4. namespace Web.Api.Endpoints.Developers.Profile;
  5. internal sealed class Get : IEndpoint
  6. {
  7. public void MapEndpoint(IEndpointRouteBuilder app)
  8. {
  9. app.MapGet("api/developers/profile", async (
  10. HttpContext httpContext,
  11. ISender sender,
  12. CancellationToken ct
  13. ) => {
  14. var memberID = httpContext.User.GetRequiredMemberID();
  15. var query = new Application.Features.Api.Developers.Profile.GetProfile.Query(memberID);
  16. var result = await sender.Send(query, ct);
  17. return result.Match(
  18. data => ApiResponse.Ok(data),
  19. CustomResults.Problem
  20. );
  21. })
  22. .WithTags("Developers")
  23. .RequireAuthorization();
  24. }
  25. }