using System.Security.Claims; using Application.Abstractions.Messaging; using Web.Api.Common; using Web.Api.Extensions; namespace Web.Api.Endpoints.Stocks.Watch; /// 관심 여부 맵 — 목록 별표·상세 초기상태용 배치 조회 (인증). codes=CSV(최대 100). internal sealed class IsWatching : IEndpoint { public void MapEndpoint(IEndpointRouteBuilder app) { app.MapGet("api/stocks/watchlist/status", async ( string? codes, ClaimsPrincipal user, ISender sender, CancellationToken ct ) => { var memberID = user.GetRequiredMemberID(); var list = (codes ?? "") .Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries) .Take(100) .ToArray(); var data = await sender.Send(new Application.Features.Api.Stocks.Watch.IsWatching.Query(memberID, list), ct); return ApiResponse.Ok(data); }) .WithTags("Stocks.Watch") .RequireAuthorization(); } }