ResetWidgetToken.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using Web.Api.Common;
  2. using Web.Api.Extensions;
  3. using Application.Abstractions.Messaging;
  4. namespace Web.Api.Endpoints.Channel;
  5. /// <summary>위젯 토큰 재발급</summary>
  6. internal sealed class ResetWidgetToken : IEndpoint
  7. {
  8. private sealed record Request(int ChannelID);
  9. public void MapEndpoint(IEndpointRouteBuilder app)
  10. {
  11. app.MapPost("api/channel/widget-token/reset", async (
  12. Request request,
  13. HttpContext http,
  14. ISender sender,
  15. CancellationToken ct
  16. ) => {
  17. var memberID = http.User.GetRequiredMemberID();
  18. var result = await sender.Send(
  19. new Application.Features.Api.Channel.ResetWidgetToken.Command(request.ChannelID, memberID)
  20. , ct);
  21. return result.Match(
  22. token => ApiResponse.Ok(new {
  23. widgetToken = token
  24. }),
  25. CustomResults.Problem
  26. );
  27. })
  28. .WithTags("Channel")
  29. .RequireAuthorization()
  30. .RequireFeature(c => c.Channel);
  31. }
  32. }