CrewMemberAdd.cs 948 B

123456789101112131415161718192021222324252627282930313233
  1. using Web.Api.Common;
  2. using MediatR;
  3. namespace Web.Api.Endpoints.Studio.Crew;
  4. /// <summary>크루원 추가 (회원 검색으로)</summary>
  5. internal sealed class CrewMemberAdd : IEndpoint
  6. {
  7. internal sealed record AddRequest(
  8. int CrewID,
  9. int TargetMemberID,
  10. string Nickname,
  11. string? Role,
  12. int SortOrder = 0
  13. );
  14. public void MapEndpoint(IEndpointRouteBuilder app)
  15. {
  16. app.MapPost("api/studio/crew/member/add", async (
  17. AddRequest body,
  18. ISender sender,
  19. CancellationToken ct
  20. ) => {
  21. var command = new Application.Features.Api.Crew.AddMember.Command(
  22. body.CrewID, body.TargetMemberID, body.Nickname, body.Role, body.SortOrder
  23. );
  24. var data = await sender.Send(command, ct);
  25. return ApiResponse.Ok(data);
  26. })
  27. .WithTags("StudioCrew")
  28. .RequireAuthorization();
  29. }
  30. }