void.cat/VoidCat/Services/Users/UsersStartup.cs
2022-09-08 13:38:32 +01:00

39 lines
1.3 KiB
C#

using VoidCat.Model;
using VoidCat.Services.Abstractions;
using VoidCat.Services.Users.Auth;
namespace VoidCat.Services.Users;
public static class UsersStartup
{
public static void AddUserServices(this IServiceCollection services, VoidSettings settings)
{
services.AddTransient<UserManager>();
services.AddTransient<OAuthFactory>();
if (settings.HasDiscord())
{
services.AddTransient<IOAuthProvider, DiscordOAuthProvider>();
}
if (settings.HasGoogle())
{
services.AddTransient<IOAuthProvider, GoogleOAuthProvider>();
}
if (settings.HasPostgres())
{
services.AddTransient<IUserStore, PostgresUserStore>();
services.AddTransient<IEmailVerification, PostgresEmailVerification>();
services.AddTransient<IApiKeyStore, PostgresApiKeyStore>();
services.AddTransient<IUserAuthTokenStore, PostgresUserAuthTokenStore>();
}
else
{
services.AddTransient<IUserStore, CacheUserStore>();
services.AddTransient<IEmailVerification, CacheEmailVerification>();
services.AddTransient<IApiKeyStore, CacheApiKeyStore>();
services.AddTransient<IUserAuthTokenStore, CacheUserAuthTokenStore>();
}
}
}