GetFeed.cs 910 B

123456789101112131415161718192021222324252627282930313233
  1. using Application.Abstractions.Messaging;
  2. using Web.Api.Common;
  3. using Web.Api.Extensions;
  4. namespace Web.Api.Endpoints.Member.Profile;
  5. internal sealed class GetFeed : IEndpoint
  6. {
  7. public void MapEndpoint(IEndpointRouteBuilder app)
  8. {
  9. app.MapGet("api/member/{memberSID}/feed", async (
  10. string memberSID,
  11. int? page,
  12. int? perPage,
  13. ISender sender,
  14. CancellationToken ct
  15. ) => {
  16. var query = new Application.Features.Api.Feed.GetByUser.Query(
  17. memberSID,
  18. page is > 0 ? page.Value : 1,
  19. (ushort)Math.Clamp(perPage ?? 20, 1, 50)
  20. );
  21. var result = await sender.Send(query, ct);
  22. return result.Match(
  23. data => ApiResponse.Ok(data),
  24. CustomResults.Problem
  25. );
  26. })
  27. .WithTags("Member");
  28. }
  29. }