Current section

Files

Jump to
bamboo_flowmailer lib flowmailer shared.ex
Raw

lib/flowmailer/shared.ex

defmodule FlowMailer.Shared do
@moduledoc false
def hackney_opts(config) do
config
|> Map.get(:hackney_opts, [])
|> Enum.concat([:with_body])
end
def get_config_value(config, key, default \\ nil) do
value =
case Map.get(config, key, default) do
{:system, var} -> System.get_env(var)
{module_name, method_name, args} -> apply(module_name, method_name, args)
fun when is_function(fun) -> fun.()
key -> key
end
if value in [nil, ""] do
raise_api_key_error(config, key)
else
value
end
end
def handle_http_error(response) do
raise "Http response error: #{inspect(response)}"
end
defp raise_api_key_error(config, key) do
raise ArgumentError, """
There was no Config parameter #{key} set for the FlowMailer adapter.
* Here are the config options that were passed in:
#{inspect(config)}
"""
end
end