Add "Your backup is ready" email
This commit is contained in:
		
							parent
							
								
									e52dd62e14
								
							
						
					
					
						commit
						7fdd81d000
					
				
					 3 changed files with 25 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -189,4 +189,20 @@ def unsubscribe_url(user, notifications_type) do
 | 
			
		|||
 | 
			
		||||
    Router.Helpers.subscription_url(Endpoint, :unsubscribe, token)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def backup_is_ready_email(backup) do
 | 
			
		||||
    %{user: user} = Pleroma.Repo.preload(backup, :user)
 | 
			
		||||
    download_url = Pleroma.Web.PleromaAPI.BackupView.download_url(backup)
 | 
			
		||||
 | 
			
		||||
    html_body = """
 | 
			
		||||
    <p>You requested a full backup of your Pleroma account. It's ready for download:</p>
 | 
			
		||||
    <p><a href="#{download_url}"></a></p>
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    new()
 | 
			
		||||
    |> to(recipient(user))
 | 
			
		||||
    |> from(sender())
 | 
			
		||||
    |> subject("Your account archive is ready")
 | 
			
		||||
    |> html_body(html_body)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,7 +34,11 @@ def perform(%Job{args: %{"op" => "process", "backup_id" => backup_id}}) do
 | 
			
		|||
    with {:ok, %Backup{} = backup} <-
 | 
			
		||||
           backup_id |> Backup.get() |> Backup.process(),
 | 
			
		||||
         {:ok, _job} <- schedule_deletion(backup),
 | 
			
		||||
         :ok <- Backup.remove_outdated(backup) do
 | 
			
		||||
         :ok <- Backup.remove_outdated(backup),
 | 
			
		||||
         {:ok, _} <-
 | 
			
		||||
           backup
 | 
			
		||||
           |> Pleroma.Emails.UserEmail.backup_is_ready_email()
 | 
			
		||||
           |> Pleroma.Emails.Mailer.deliver() do
 | 
			
		||||
      {:ok, backup}
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,8 +6,9 @@ defmodule Pleroma.BackupTest do
 | 
			
		|||
  use Oban.Testing, repo: Pleroma.Repo
 | 
			
		||||
  use Pleroma.DataCase
 | 
			
		||||
 | 
			
		||||
  import Pleroma.Factory
 | 
			
		||||
  import Mock
 | 
			
		||||
  import Pleroma.Factory
 | 
			
		||||
  import Swoosh.TestAssertions
 | 
			
		||||
 | 
			
		||||
  alias Pleroma.Backup
 | 
			
		||||
  alias Pleroma.Bookmark
 | 
			
		||||
| 
						 | 
				
			
			@ -65,6 +66,8 @@ test "it process a backup record" do
 | 
			
		|||
    assert_enqueued(worker: BackupWorker, args: delete_job_args)
 | 
			
		||||
    assert {:ok, backup} = perform_job(BackupWorker, delete_job_args)
 | 
			
		||||
    refute Backup.get(backup_id)
 | 
			
		||||
 | 
			
		||||
    assert_email_sent(Pleroma.Emails.UserEmail.backup_is_ready_email(backup))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  test "it removes outdated backups after creating a fresh one" do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue