Iceshrimp.NET/Iceshrimp.Backend/Core/Helpers/ServiceExtensions.cs
2024-01-13 19:49:08 +01:00

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"));
}
}