# Pleroma: A lightweight social networking server
# Copyright © 2017-2019 Pleroma Authors 
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Emails.AdminEmail do
  @moduledoc "Admin emails"
  import Swoosh.Email
  alias Pleroma.Web.Router.Helpers
  defp instance_config, do: Pleroma.Config.get(:instance)
  defp instance_name, do: instance_config()[:name]
  defp instance_notify_email do
    Keyword.get(instance_config(), :notify_email, instance_config()[:email])
  end
  defp user_url(user) do
    Helpers.feed_url(Pleroma.Web.Endpoint, :feed_redirect, user.id)
  end
  def report(to, reporter, account, statuses, comment) do
    comment_html =
      if comment do
        "
Comment: #{comment}"
      else
        ""
      end
    statuses_html =
      if is_list(statuses) && length(statuses) > 0 do
        statuses_list_html =
          statuses
          |> Enum.map(fn
            %{id: id} ->
              status_url = Helpers.o_status_url(Pleroma.Web.Endpoint, :notice, id)
              "
#{status_url}"
            id when is_binary(id) ->
              "#{id}"
          end)
          |> Enum.join("\n")
        """
         Statuses:
          
        
        """
      else
        ""
      end
    html_body = """
    Reported by: #{reporter.nickname}
    Reported Account: #{account.nickname}
    #{comment_html}
    #{statuses_html}
    """
    new()
    |> to({to.name, to.email})
    |> from({instance_name(), instance_notify_email()})
    |> subject("#{instance_name()} Report")
    |> html_body(html_body)
  end
end