diff options
Diffstat (limited to 'plugins/VNLib.Plugins.Essentials.Accounts.Registration')
3 files changed, 31 insertions, 3 deletions
diff --git a/plugins/VNLib.Plugins.Essentials.Accounts.Registration/src/RegistrationContext.cs b/plugins/VNLib.Plugins.Essentials.Accounts.Registration/src/RegistrationContext.cs index 611e30e..3b50303 100644 --- a/plugins/VNLib.Plugins.Essentials.Accounts.Registration/src/RegistrationContext.cs +++ b/plugins/VNLib.Plugins.Essentials.Accounts.Registration/src/RegistrationContext.cs @@ -1,5 +1,5 @@ /* -* Copyright (c) 2022 Vaughn Nugent +* Copyright (c) 2023 Vaughn Nugent * * Library: VNLib * Package: VNLib.Plugins.Essentials.Accounts.Registration @@ -25,15 +25,33 @@ using Microsoft.EntityFrameworkCore; using VNLib.Plugins.Extensions.Data; +using VNLib.Plugins.Extensions.Loading.Sql; using VNLib.Plugins.Essentials.Accounts.Registration.TokenRevocation; namespace VNLib.Plugins.Essentials.Accounts.Registration { - internal class RegistrationContext : TransactionalDbContext + internal class RegistrationContext : TransactionalDbContext, IDbTableDefinition { public DbSet<RevokedToken> RevokedRegistrationTokens { get; set; } public RegistrationContext(DbContextOptions options) : base(options) {} + + public RegistrationContext() + {} + + public void OnDatabaseCreating(IDbContextBuilder builder, object? state) + { + //Define a table for the revoked tokens + builder.DefineTable<RevokedToken>(nameof(RevokedRegistrationTokens)) + //Define the token column and the created column, let the framework determine the data-types + .WithColumn(p => p.Token) + .MaxLength(200) + .Next() + + //Define the next column + .WithColumn(p => p.Created) + .AllowNull(false); + } } }
\ No newline at end of file diff --git a/plugins/VNLib.Plugins.Essentials.Accounts.Registration/src/RegistrationEntryPoint.cs b/plugins/VNLib.Plugins.Essentials.Accounts.Registration/src/RegistrationEntryPoint.cs index bceb5e1..790a2c6 100644 --- a/plugins/VNLib.Plugins.Essentials.Accounts.Registration/src/RegistrationEntryPoint.cs +++ b/plugins/VNLib.Plugins.Essentials.Accounts.Registration/src/RegistrationEntryPoint.cs @@ -25,6 +25,7 @@ using VNLib.Utils.Logging; using VNLib.Plugins.Extensions.Loading; +using VNLib.Plugins.Extensions.Loading.Sql; using VNLib.Plugins.Extensions.Loading.Routing; using VNLib.Plugins.Essentials.Accounts.Registration.Endpoints; @@ -39,8 +40,17 @@ namespace VNLib.Plugins.Essentials.Accounts.Registration //Route reg endpoint this.Route<RegistrationEntpoint>(); + //Schedule creating database tables + _ = this.ObserveWork(CreateDatabaseTables, 1000); + Log.Information("Plugin loaded"); } + + private async Task CreateDatabaseTables() + { + //Ensure the database is created + await this.EnsureDbCreatedAsync<RegistrationContext>(this); + } protected override void OnUnLoad() { diff --git a/plugins/VNLib.Plugins.Essentials.Accounts.Registration/src/VNLib.Plugins.Essentials.Accounts.Registration.csproj b/plugins/VNLib.Plugins.Essentials.Accounts.Registration/src/VNLib.Plugins.Essentials.Accounts.Registration.csproj index 5b8edc5..5b254d3 100644 --- a/plugins/VNLib.Plugins.Essentials.Accounts.Registration/src/VNLib.Plugins.Essentials.Accounts.Registration.csproj +++ b/plugins/VNLib.Plugins.Essentials.Accounts.Registration/src/VNLib.Plugins.Essentials.Accounts.Registration.csproj @@ -34,7 +34,7 @@ <Deterministic>False</Deterministic> </PropertyGroup> <ItemGroup> - <PackageReference Include="FluentValidation" Version="11.5.1" /> + <PackageReference Include="FluentValidation" Version="11.5.2" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\..\..\..\..\core\lib\Plugins.Essentials\src\VNLib.Plugins.Essentials.csproj" /> |