1
0
mirror of https://github.com/bitwarden/server synced 2026-01-06 02:23:51 +00:00

Refactor recipies into scenes

This commit is contained in:
Hinton
2025-10-17 11:47:19 -04:00
parent f6fe7a9316
commit fd41332e4c
8 changed files with 120 additions and 108 deletions

15
util/Seeder/IScene.cs Normal file
View File

@@ -0,0 +1,15 @@
namespace Bit.Seeder;
public interface IScene
{
Type GetRequestType();
RecipeResult Seed(object request);
}
public interface IScene<TRequest> : IScene where TRequest : class
{
RecipeResult Seed(TRequest request);
Type IScene.GetRequestType() => typeof(TRequest);
RecipeResult IScene.Seed(object request) => Seed((TRequest)request);
}

View File

@@ -1,14 +1,23 @@
using Bit.Core.Enums;
using System.ComponentModel.DataAnnotations;
using Bit.Core.Enums;
using Bit.Infrastructure.EntityFramework.Repositories;
using Bit.Seeder.Factories;
namespace Bit.Seeder.Recipes;
namespace Bit.Seeder.Scenes;
public class SingleUserRecipe(DatabaseContext db, UserSeeder userSeeder)
public class SingleUserScene(DatabaseContext db, UserSeeder userSeeder) : IScene<SingleUserScene.Request>
{
public RecipeResult Seed(string email, bool emailVerified = false, bool premium = false)
public class Request
{
var user = userSeeder.CreateUser(email, emailVerified, premium);
[Required]
public required string Email { get; set; }
public bool EmailVerified { get; set; } = false;
public bool Premium { get; set; } = false;
}
public RecipeResult Seed(Request request)
{
var user = userSeeder.CreateUser(request.Email, request.EmailVerified, request.Premium);
db.Add(user);
db.SaveChanges();
@@ -17,7 +26,7 @@ public class SingleUserRecipe(DatabaseContext db, UserSeeder userSeeder)
{
Result = userSeeder.GetMangleMap(user, new UserData
{
Email = email,
Email = request.Email,
Id = Guid.Parse("00000000-0000-0000-0000-000000000001"),
Key = "seeded_key",
PublicKey = "seeded_public_key",