summaryrefslogtreecommitdiff
path: root/lib/powerdnsex/models/resource_record_set.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/powerdnsex/models/resource_record_set.ex')
-rw-r--r--lib/powerdnsex/models/resource_record_set.ex69
1 files changed, 37 insertions, 32 deletions
diff --git a/lib/powerdnsex/models/resource_record_set.ex b/lib/powerdnsex/models/resource_record_set.ex
index 1a410b1..dbb90b3 100644
--- a/lib/powerdnsex/models/resource_record_set.ex
+++ b/lib/powerdnsex/models/resource_record_set.ex
@@ -1,5 +1,4 @@
defmodule PowerDNSex.Models.ResourceRecordSet do
-
alias PowerDNSex.Models.Record
defstruct [:name, :type, :ttl, :records, :changetype]
@@ -10,21 +9,23 @@ defmodule PowerDNSex.Models.ResourceRecordSet do
end
def as_body(%__MODULE__{} = rrset) do
- %{rrsets: [
- %{
- name: rrset.name,
- type: rrset.type,
- ttl: rrset.ttl,
- changetype: rrset.changetype,
- records: Record.as_body(rrset.records)
- }
- ]}
- |> Poison.encode!
+ %{
+ rrsets: [
+ %{
+ name: rrset.name,
+ type: rrset.type,
+ ttl: rrset.ttl,
+ changetype: rrset.changetype,
+ records: Record.as_body(rrset.records)
+ }
+ ]
+ }
+ |> Poison.encode!()
end
def find(rrsets, %{} = attrs) when is_list(rrsets) do
- Enum.find(rrsets, fn(rrset) ->
- Enum.all?(attrs, fn({attr, attr_value}) ->
+ Enum.find(rrsets, fn rrset ->
+ Enum.all?(attrs, fn {attr, attr_value} ->
if Enum.member?(Map.keys(%__MODULE__{}), attr) do
equal_attr?(attr, attr_value, rrset)
else
@@ -35,23 +36,26 @@ defmodule PowerDNSex.Models.ResourceRecordSet do
end
def update(%__MODULE__{} = rrset, %{} = new_attrs) do
- Enum.reduce(@permited_attrs, rrset, fn(attr_name, rrset) ->
- case Map.fetch(new_attrs, attr_name) do
- {:ok, new_value} ->
- if attr_name == :records do
- new_value = Record.build(new_value)
- end
- %{rrset | attr_name => new_value}
- _ -> rrset
- end
- end)
+ Enum.reduce(@permited_attrs, rrset, fn attr_name, rrset ->
+ case {attr_name, Map.fetch(new_attrs, attr_name)} do
+ {:records, {:ok, new_value}} ->
+ %{rrset | attr_name => Record.build(new_value)}
+
+ {_, {:ok, new_value}} ->
+ %{rrset | attr_name => new_value}
+
+ _ ->
+ rrset
+ end
+ end)
end
def nameservers(rrsets) do
- rrset = Enum.find(rrsets, fn(rrset) -> rrset.type == "NS" end)
- nameservers = case rrset do
+ rrset = Enum.find(rrsets, fn rrset -> rrset.type == "NS" end)
+
+ case rrset do
nil -> []
- _ -> Enum.map(rrset.records, &(&1.content) )
+ _ -> Enum.map(rrset.records, & &1.content)
end
end
@@ -62,10 +66,11 @@ defmodule PowerDNSex.Models.ResourceRecordSet do
defp set_attrs(rrset, attr_name, attrs) do
if Map.has_key?(attrs, attr_name) do
- attr_value = case attr_name do
- :records -> Record.build(Map.fetch!(attrs, attr_name))
- _ -> Map.fetch!(attrs, attr_name)
- end
+ attr_value =
+ case attr_name do
+ :records -> Record.build(Map.fetch!(attrs, attr_name))
+ _ -> Map.fetch!(attrs, attr_name)
+ end
%{rrset | attr_name => attr_value}
else
@@ -80,7 +85,7 @@ defmodule PowerDNSex.Models.ResourceRecordSet do
defp build_rrset(rrset_attrs) do
%__MODULE__{}
- |> Map.keys
- |> Enum.reduce(%__MODULE__{}, &(set_attrs(&2, &1, rrset_attrs)))
+ |> Map.keys()
+ |> Enum.reduce(%__MODULE__{}, &set_attrs(&2, &1, rrset_attrs))
end
end