Search.cs 762 B

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