using System.Security.Claims; using Web.Api.Common; using Web.Api.Extensions; using MediatR; namespace Web.Api.Endpoints.Store; /// 상점 — 후원 코드(case-insensitive)로 채널 조회. /store/{id}?code=XXX 자동 채널 설정용. internal sealed class ChannelsGetByCode : IEndpoint { public void MapEndpoint(IEndpointRouteBuilder app) { app.MapGet("api/store/channels/by-code", async ( string? code, ClaimsPrincipal user, ISender sender, CancellationToken ct ) => { var memberID = user.GetRequiredMemberID(); var result = await sender.Send(new Application.Features.Api.Channel.GetByCode.Query(memberID, code ?? ""), ct); if (result.IsFailure) { return CustomResults.Problem(result); } return ApiResponse.Ok(result.Value); }) .WithTags("Store") .RequireAuthorization(); } }