33 lines
No EOL
1.3 KiB
C#
33 lines
No EOL
1.3 KiB
C#
using Iceshrimp.Backend.Controllers.Renderers.ActivityPub;
|
|
using Iceshrimp.Backend.Core.Configuration;
|
|
using Iceshrimp.Backend.Core.Federation.ActivityPub;
|
|
using Iceshrimp.Backend.Core.Federation.WebFinger;
|
|
using Iceshrimp.Backend.Core.Services;
|
|
|
|
namespace Iceshrimp.Backend.Core.Helpers;
|
|
|
|
public static class ServiceExtensions {
|
|
public static void AddServices(this IServiceCollection services) {
|
|
// Transient = instantiated per request and class
|
|
//services.AddTransient<T>();
|
|
|
|
// Scoped = instantiated per request
|
|
services.AddScoped<UserResolver>();
|
|
services.AddScoped<UserService>();
|
|
services.AddScoped<NoteService>();
|
|
services.AddScoped<APUserRenderer>();
|
|
services.AddScoped<WebFingerService>();
|
|
|
|
// Singleton = instantiated once across application lifetime
|
|
services.AddSingleton<HttpClient>();
|
|
services.AddSingleton<HttpRequestService>();
|
|
services.AddSingleton<ActivityPubService>();
|
|
}
|
|
|
|
public static void ConfigureServices(this IServiceCollection services, IConfiguration configuration) {
|
|
//TODO: fail if config doesn't parse correctly / required things are missing
|
|
services.Configure<Config>(configuration);
|
|
services.Configure<Config.InstanceSection>(configuration.GetSection("Instance"));
|
|
services.Configure<Config.DatabaseSection>(configuration.GetSection("Database"));
|
|
}
|
|
} |