diff options
Diffstat (limited to 'lib/powerdnsex/config.ex')
-rw-r--r-- | lib/powerdnsex/config.ex | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/powerdnsex/config.ex b/lib/powerdnsex/config.ex index 0d97cb2..34d5889 100644 --- a/lib/powerdnsex/config.ex +++ b/lib/powerdnsex/config.ex @@ -5,22 +5,22 @@ defmodule PowerDNSex.Config do alias PowerDNSex.Config def data do - set_attr_value = &(Map.put(&2, &1, get_key(&1))) + set_attr_value = &Map.put(&2, &1, get_key(&1)) %Config{} - |> Map.from_struct - |> Map.keys + |> Map.from_struct() + |> Map.keys() |> Enum.reduce(%Config{}, set_attr_value) end def powerdns_url do - url = data.url - if String.ends_with?(url, "/"), do: url, else: url <> "/" + url = data().url + if String.ends_with?(url, "/"), do: url, else: url <> "/" end - def powerdns_token, do: data.token + def powerdns_token, do: data().token - def valid?(), do: powerdns_url && powerdns_token + def valid?(), do: powerdns_url() && powerdns_token() ### # Private @@ -28,8 +28,12 @@ defmodule PowerDNSex.Config do defp get_key(key) do case Application.fetch_env(:powerdnsex, key) do - {:ok, {:system, env_var_name}} -> System.get_env(env_var_name) - {:ok, value} -> value + {:ok, {:system, env_var_name}} -> + System.get_env(env_var_name) + + {:ok, value} -> + value + _ -> raise "[PowerDNSex] PowerDNS #{Atom.to_string(key)} not configured." end |