diff options
Diffstat (limited to 'lib/powerdnsex/models/record.ex')
-rw-r--r-- | lib/powerdnsex/models/record.ex | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/powerdnsex/models/record.ex b/lib/powerdnsex/models/record.ex index 9ffc2b7..b334a9b 100644 --- a/lib/powerdnsex/models/record.ex +++ b/lib/powerdnsex/models/record.ex @@ -2,15 +2,7 @@ defmodule PowerDNSex.Models.Record do defstruct [:content, :disabled] def build(attrs) when is_list(attrs) do - Enum.reduce(attrs, [], &(&2 ++ [build(&1)])) - end - - def build(attrs) when is_tuple(attrs) do - %__MODULE__{content: elem(attrs, 0), disabled: elem(attrs, 1)} - end - - def build(attrs) when is_map(attrs) do - %__MODULE__{content: attrs.content, disabled: attrs.disabled} + Enum.reduce(attrs, [], &(&2 ++ [build_item(&1)])) end def as_body(nil), do: [] @@ -34,4 +26,16 @@ defmodule PowerDNSex.Models.Record do end) end) end + + ### + # PRIVATE + ### + + defp build_item(attrs) when is_tuple(attrs) do + %__MODULE__{content: elem(attrs, 0), disabled: elem(attrs, 1)} + end + + defp build_item(attrs) when is_map(attrs) do + %__MODULE__{content: attrs["content"], disabled: attrs["disabled"]} + end end |