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>();
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-25 17:59:32 +00:00
|
|
|
|
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>();
|
2022-07-25 17:59:32 +00:00
|
|
|
|
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
|
|
|
|
}
|