using FictionArchive.Service.AuthenticationService.Models.Requests; using FictionArchive.Service.Shared.MassTransit.Contracts.Events; using MassTransit; using Microsoft.AspNetCore.Mvc; namespace FictionArchive.Service.AuthenticationService.Controllers { [Route("api/[controller]")] [ApiController] public class AuthenticationWebhookController : ControllerBase { private readonly IPublishEndpoint _publishEndpoint; public AuthenticationWebhookController(IPublishEndpoint publishEndpoint) { _publishEndpoint = publishEndpoint; } [HttpPost(nameof(UserRegistered))] public async Task UserRegistered([FromBody] UserRegisteredWebhookPayload payload) { var authUserAddedEvent = new AuthUserAddedEvent { OAuthProviderId = payload.OAuthProviderId, InviterOAuthProviderId = payload.InviterOAuthProviderId, EventUserEmail = payload.EventUserEmail, EventUserUsername = payload.EventUserUsername }; await _publishEndpoint.Publish(authUserAddedEvent); return Ok(); } } }