CbExercises.cs 1.1 KB

123456789101112131415161718192021222324252627282930
  1. using Application.Abstractions.Messaging;
  2. using Web.Api.Common;
  3. using Web.Api.Extensions;
  4. namespace Web.Api.Endpoints.Stocks;
  5. /// <summary>종목별 CB/BW/EB 행사 내역 — 단축코드(6자리) 행사주식(기본) 또는 채권(byBond=true) 기준. 행사가·행사주수·행사주식 ISIN 링크 (익명 열람). SEIBro 기업행위 수집.</summary>
  6. internal sealed class CbExercises : IEndpoint
  7. {
  8. public void MapEndpoint(IEndpointRouteBuilder app)
  9. {
  10. app.MapGet("api/stocks/{code:regex(^\\d{{6}}$)}/cb-exercises", async (
  11. string code,
  12. ISender sender,
  13. bool byBond = false,
  14. int page = 1,
  15. ushort perPage = 30,
  16. CancellationToken ct = default
  17. ) => {
  18. var result = await sender.Send(new Application.Features.Api.Stocks.GetCbExercises.Query(code, byBond, page, perPage), ct);
  19. return result.Match(
  20. () => ApiResponse.Ok(result.Value),
  21. CustomResults.Problem
  22. );
  23. })
  24. .WithTags("Stocks")
  25. .AllowAnonymous();
  26. }
  27. }