26 lines
		
	
	
	
		
			725 B
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			725 B
		
	
	
	
		
			Elixir
		
	
	
	
	
	
| defmodule Pleroma.Builders.UserBuilder do
 | |
|   alias Pleroma.Repo
 | |
|   alias Pleroma.User
 | |
| 
 | |
|   def build(data \\ %{}) do
 | |
|     user = %User{
 | |
|       email: "test@example.org",
 | |
|       name: "Test Name",
 | |
|       nickname: "testname",
 | |
|       password_hash: Pleroma.Password.Pbkdf2.hash_pwd_salt("test"),
 | |
|       bio: "A tester.",
 | |
|       ap_id: "some id",
 | |
|       last_digest_emailed_at: NaiveDateTime.truncate(NaiveDateTime.utc_now(), :second),
 | |
|       multi_factor_authentication_settings: %Pleroma.MFA.Settings{},
 | |
|       notification_settings: %Pleroma.User.NotificationSetting{}
 | |
|     }
 | |
| 
 | |
|     Map.merge(user, data)
 | |
|   end
 | |
| 
 | |
|   def insert(data \\ %{}) do
 | |
|     {:ok, user} = Repo.insert(build(data))
 | |
|     User.invalidate_cache(user)
 | |
|     {:ok, user}
 | |
|   end
 | |
| end
 | 
