void.cat/VoidCat/Services/Users/UsersStartup.cs

40 lines
1.4 KiB
C#
Raw Permalink Normal View History

2022-06-06 21:51:25 +00:00
using VoidCat.Model;
using VoidCat.Services.Abstractions;
2022-09-08 09:41:31 +00:00
using VoidCat.Services.Users.Auth;
2022-06-06 21:51:25 +00:00
namespace VoidCat.Services.Users;
public static class UsersStartup
{
public static void AddUserServices(this IServiceCollection services, VoidSettings settings)
{
2022-09-08 09:41:31 +00:00
services.AddTransient<UserManager>();
services.AddTransient<OAuthFactory>();
2023-10-13 19:07:35 +00:00
services.AddTransient<NostrProfileService>();
2022-09-08 09:41:31 +00:00
if (settings.HasDiscord())
{
services.AddTransient<IOAuthProvider, DiscordOAuthProvider>();
}
2022-06-08 16:17:53 +00:00
2022-09-08 12:38:32 +00:00
if (settings.HasGoogle())
{
services.AddTransient<IOAuthProvider, GoogleOAuthProvider>();
}
if (settings.HasPostgres())
2022-06-06 21:51:25 +00:00
{
services.AddTransient<IUserStore, PostgresUserStore>();
2022-06-08 16:17:53 +00:00
services.AddTransient<IEmailVerification, PostgresEmailVerification>();
services.AddTransient<IApiKeyStore, PostgresApiKeyStore>();
2022-09-08 09:41:31 +00:00
services.AddTransient<IUserAuthTokenStore, PostgresUserAuthTokenStore>();
2022-06-06 21:51:25 +00:00
}
else
{
2022-06-08 16:17:53 +00:00
services.AddTransient<IUserStore, CacheUserStore>();
services.AddTransient<IEmailVerification, CacheEmailVerification>();
2022-07-25 19:05:31 +00:00
services.AddTransient<IApiKeyStore, CacheApiKeyStore>();
2022-09-08 09:41:31 +00:00
services.AddTransient<IUserAuthTokenStore, CacheUserAuthTokenStore>();
2022-06-06 21:51:25 +00:00
}
}
2022-09-08 09:41:31 +00:00
}