Articles.cs 702 B

1234567891011121314151617181920212223242526
  1. using MediatR;
  2. using Web.Api.Common;
  3. namespace Web.Api.Endpoints.News;
  4. internal sealed class Articles : IEndpoint
  5. {
  6. public void MapEndpoint(IEndpointRouteBuilder app)
  7. {
  8. app.MapGet("api/news/articles", async (
  9. ISender sender,
  10. CancellationToken ct,
  11. int? rssFeedSourceID = null,
  12. string? keyword = null,
  13. int page = 1,
  14. ushort perPage = 20
  15. ) =>
  16. {
  17. var query = new Application.Features.Api.News.GetArticles.Query(rssFeedSourceID, keyword, page, perPage);
  18. return ApiResponse.Ok(await sender.Send(query, ct));
  19. })
  20. .WithTags("News")
  21. .AllowAnonymous();
  22. }
  23. }