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:
15
util/Seeder/IScene.cs
Normal file
15
util/Seeder/IScene.cs
Normal 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);
|
||||
}
|
||||
@@ -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",
|
||||
Reference in New Issue
Block a user