[FA-55] User Service backend initial setup

This commit is contained in:
gamer147
2025-12-29 11:20:23 -05:00
parent 1d950b7721
commit c0290cc5af
22 changed files with 843 additions and 120 deletions

View File

@@ -1,11 +1,12 @@
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.UserService.GraphQL;
using FictionArchive.Service.UserService.Models.IntegrationEvents;
using FictionArchive.Service.UserService.Services;
using FictionArchive.Service.UserService.Services.EventHandlers;
using FictionArchive.Service.UserService.Services.AuthenticationClient;
using FictionArchive.Service.UserService.Services.AuthenticationClient.Authentik;
namespace FictionArchive.Service.UserService;
@@ -25,19 +26,34 @@ public class Program
builder.Services.AddRabbitMQ(opt =>
{
builder.Configuration.GetSection("RabbitMQ").Bind(opt);
})
.Subscribe<AuthUserAddedEvent, AuthUserAddedEventHandler>();
});
}
#endregion
#region GraphQL
builder.Services.AddDefaultGraphQl<Query, Mutation>()
.AddAuthorization();
#endregion
#region Authentik Client
builder.Services.Configure<AuthentikConfiguration>(
builder.Configuration.GetSection("Authentik"));
var authentikConfig = builder.Configuration.GetSection("Authentik").Get<AuthentikConfiguration>();
builder.Services.AddHttpClient<IAuthenticationServiceClient, AuthentikClient>(client =>
{
client.BaseAddress = new Uri(authentikConfig?.BaseUrl ?? "https://localhost");
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", authentikConfig?.ApiToken ?? "");
})
.AddStandardResilienceHandler();
#endregion
builder.Services.RegisterDbContext<UserServiceDbContext>(
builder.Configuration.GetConnectionString("DefaultConnection"),
skipInfrastructure: isSchemaExport);