ResetWidgetToken.cs 1014 B

1234567891011121314151617181920212223242526272829303132333435
  1. using Web.Api.Common;
  2. using Web.Api.Extensions;
  3. using MediatR;
  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. }
  31. }