| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- using MediatR;
- using System.Security.Claims;
- using Web.Api.Common;
- using Web.Api.Extensions;
- namespace Web.Api.Endpoints.Forum.Post;
- internal sealed class Search : IEndpoint
- {
- public void MapEndpoint(IEndpointRouteBuilder app)
- {
- app.MapGet("api/forum/posts", async (
- ISender sender,
- ClaimsPrincipal user,
- CancellationToken ct,
- int? boardID = null,
- int? boardPrefixID = null,
- int? search = null,
- string? keyword = null,
- string? startAt = null,
- string? endAt = null,
- int? sort = null,
- bool? isNotice = null,
- bool? isSecret = null,
- bool? isReply = null,
- bool? isDeleted = null,
- int page = 1,
- ushort perPage = 20
- ) =>
- {
- var memberID = user.GetMemberID();
- var query = new Application.Features.Api.Forum.Post.Search.Query(
- boardID,
- boardPrefixID,
- search,
- keyword,
- startAt,
- endAt,
- sort,
- isNotice,
- isSecret,
- isReply,
- isDeleted,
- page,
- perPage,
- memberID
- );
- return ApiResponse.Ok(await sender.Send(query, ct));
- })
- .WithTags("Forum")
- .AllowAnonymous();
- }
- }
|