36 lines
1.2 KiB
C#
36 lines
1.2 KiB
C#
using FictionArchive.Service.AuthenticationService.Models.Requests;
|
|
using FictionArchive.Service.AuthenticationService.Models.IntegrationEvents;
|
|
using FictionArchive.Service.Shared.Services.EventBus;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace FictionArchive.Service.AuthenticationService.Controllers
|
|
{
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
public class AuthenticationWebhookController : ControllerBase
|
|
{
|
|
private readonly IEventBus _eventBus;
|
|
|
|
public AuthenticationWebhookController(IEventBus eventBus)
|
|
{
|
|
_eventBus = eventBus;
|
|
}
|
|
|
|
[HttpPost(nameof(UserRegistered))]
|
|
public async Task<ActionResult> UserRegistered([FromBody] UserRegisteredWebhookPayload payload)
|
|
{
|
|
var authUserAddedEvent = new AuthUserAddedEvent
|
|
{
|
|
OAuthProviderId = payload.OAuthProviderId,
|
|
InviterOAuthProviderId = payload.InviterOAuthProviderId,
|
|
EventUserEmail = payload.EventUserEmail,
|
|
EventUserUsername = payload.EventUserUsername
|
|
};
|
|
|
|
await _eventBus.Publish(authUserAddedEvent);
|
|
|
|
return Ok();
|
|
}
|
|
}
|
|
} |