EquippedItems.cs 1020 B

1234567891011121314151617181920212223242526272829
  1. using Web.Api.Common;
  2. using Application.Abstractions.Messaging;
  3. namespace Web.Api.Endpoints.Member;
  4. /// <summary>여러 회원의 장착 지위 아이템 배치 조회 (댓글/채팅/프로필 렌더용). 예: ?ids=1,2,3</summary>
  5. internal sealed class EquippedItems : IEndpoint
  6. {
  7. public void MapEndpoint(IEndpointRouteBuilder app)
  8. {
  9. app.MapGet("api/members/equipped-items", async (
  10. string? ids,
  11. ISender sender,
  12. CancellationToken ct
  13. ) => {
  14. var memberIDs = (ids ?? string.Empty)
  15. .Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries)
  16. .Select(s => int.TryParse(s, out var v) ? v : 0)
  17. .Where(v => v > 0)
  18. .ToList();
  19. var query = new Application.Features.Api.Member.Items.Equipped.Query(memberIDs);
  20. var result = await sender.Send(query, ct);
  21. return ApiResponse.Ok(result);
  22. })
  23. .WithTags("Member");
  24. }
  25. }