[FA-misc] Mass transit overhaul, needs testing and review

This commit is contained in:
gamer147
2026-01-21 23:16:31 -05:00
parent 055ef33666
commit f88f340d0a
97 changed files with 1150 additions and 858 deletions

View File

@@ -1,17 +0,0 @@
using FictionArchive.Service.Shared.Services.EventBus;
namespace FictionArchive.Service.UserService.Models.IntegrationEvents;
public class UserInvitedEvent : IIntegrationEvent
{
// Invited user info
public Guid InvitedUserId { get; set; }
public required string InvitedUsername { get; set; }
public required string InvitedEmail { get; set; }
public required string InvitedOAuthProviderId { get; set; }
// Inviter info
public Guid InviterId { get; set; }
public required string InviterUsername { get; set; }
public required string InviterOAuthProviderId { get; set; }
}

View File

@@ -2,7 +2,7 @@ using System.Net.Http.Headers;
using FictionArchive.Common.Extensions;
using FictionArchive.Service.Shared;
using FictionArchive.Service.Shared.Extensions;
using FictionArchive.Service.Shared.Services.EventBus.Implementations;
using FictionArchive.Service.Shared.MassTransit;
using FictionArchive.Service.UserService.GraphQL;
using FictionArchive.Service.UserService.Services;
using FictionArchive.Service.UserService.Services.AuthenticationClient;
@@ -19,14 +19,11 @@ public class Program
var builder = WebApplication.CreateBuilder(args);
builder.AddLocalAppsettings();
#region Event Bus
#region MassTransit
if (!isSchemaExport)
{
builder.Services.AddRabbitMQ(opt =>
{
builder.Configuration.GetSection("RabbitMQ").Bind(opt);
});
builder.Services.AddFictionArchiveMassTransit<UserServiceDbContext>(builder.Configuration);
}
#endregion

View File

@@ -1,7 +1,7 @@
using FictionArchive.Service.Shared.Services.EventBus;
using FictionArchive.Service.Shared.MassTransit.Contracts.Events;
using FictionArchive.Service.UserService.Models.Database;
using FictionArchive.Service.UserService.Models.IntegrationEvents;
using FictionArchive.Service.UserService.Services.AuthenticationClient;
using MassTransit;
using Microsoft.EntityFrameworkCore;
namespace FictionArchive.Service.UserService.Services;
@@ -11,18 +11,18 @@ public class UserManagementService
private readonly ILogger<UserManagementService> _logger;
private readonly UserServiceDbContext _dbContext;
private readonly IAuthenticationServiceClient _authClient;
private readonly IEventBus _eventBus;
private readonly IPublishEndpoint _publishEndpoint;
public UserManagementService(
UserServiceDbContext dbContext,
ILogger<UserManagementService> logger,
IAuthenticationServiceClient authClient,
IEventBus eventBus)
IPublishEndpoint publishEndpoint)
{
_dbContext = dbContext;
_logger = logger;
_authClient = authClient;
_eventBus = eventBus;
_publishEndpoint = publishEndpoint;
}
/// <summary>
@@ -99,7 +99,7 @@ public class UserManagementService
await _dbContext.SaveChangesAsync();
await _eventBus.Publish(new UserInvitedEvent
await _publishEndpoint.Publish(new UserInvitedEvent
{
InvitedUserId = newUser.Id,
InvitedUsername = newUser.Username,

View File

@@ -9,8 +9,10 @@
"DefaultConnection": "Host=localhost;Database=FictionArchive_UserService;Username=postgres;password=postgres"
},
"RabbitMQ": {
"ConnectionString": "amqp://localhost",
"ClientIdentifier": "UserService"
"Host": "localhost",
"VirtualHost": "/",
"Username": "guest",
"Password": "guest"
},
"Authentik": {
"BaseUrl": "https://auth.orfl.xyz",