lib/toolbox/scenario/notification.ex

defmodule Toolbox.Scenario.Notification do
  @moduledoc """
  Toolbox for formatting notifications.
  """

  @spec format_direct_subscriptions([String.t()]) :: [map()]
  @doc """
  Formats emails to a list of maps used for `direct_subscriptions` in `Toolbox.Scenario.OutputAction`.

  ## Examples
      iex>  Toolbox.Scenario.Notification.format_direct_subscriptions(["john.lennon@example.com"])
      [
      %{
          "channels" => ["gmail"],
          "templates" => ["default"],
          "user" => %{"contact" => %{"email" => "john.lennon@example.com"}}
      }
      ]
  """
  def format_direct_subscriptions(emails) do
    Enum.map(emails, fn email ->
      %{
        "user" => %{"contact" => %{"email" => email}},
        "templates" => ["default"],
        "channels" => ["gmail"]
      }
    end)
  end
end