diff options
author | Tiago Freire <tcfonnet@gmail.com> | 2016-10-06 16:01:08 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-06 16:01:08 -0300 |
commit | 3a9f3845c279bda5e7b42c9038ff0fdd144cf9b2 (patch) | |
tree | 8d064e42278ba7b8434f7977f1e336e75b66818f | |
parent | Fix update of Records Manager (diff) | |
parent | Format rrset to update resource record (diff) |
Merge pull request #5 from digaoddc/master
Update Resource Record format
-rw-r--r-- | lib/powerdnsex/gen_server/server.ex | 3 | ||||
-rw-r--r-- | lib/powerdnsex/managers/records_manager.ex | 6 | ||||
-rw-r--r-- | lib/powerdnsex/models/resource_record_set.ex | 22 |
3 files changed, 18 insertions, 13 deletions
diff --git a/lib/powerdnsex/gen_server/server.ex b/lib/powerdnsex/gen_server/server.ex index a91dc76..3b24503 100644 --- a/lib/powerdnsex/gen_server/server.ex +++ b/lib/powerdnsex/gen_server/server.ex @@ -40,7 +40,6 @@ defmodule PowerDNSex.Server do end def handle_call({:delete_record, zone, rrset_attrs}, _from, state) do - attrs = Converter.keys_to_atom(rrset_attrs) - {:reply, RecordsManager.delete(zone, attrs), state} + {:reply, RecordsManager.delete(zone, rrset_attrs), state} end end diff --git a/lib/powerdnsex/managers/records_manager.ex b/lib/powerdnsex/managers/records_manager.ex index e59a153..37e6096 100644 --- a/lib/powerdnsex/managers/records_manager.ex +++ b/lib/powerdnsex/managers/records_manager.ex @@ -1,4 +1,5 @@ defmodule PowerDNSex.Managers.RecordsManager do + require Logger alias PowerDNSex.HttpClient alias PowerDNSex.Models.{Zone, Record, Error} @@ -58,8 +59,11 @@ defmodule PowerDNSex.Managers.RecordsManager do end defp patch(%Zone{} = zone, %RRSet{} = rrset) do + rrset_body = RRSet.as_body(rrset) + Logger.info "Request to [#{zone.name}] with params [#{rrset_body}]" + zone.url - |> HttpClient.patch!(RRSet.as_body(rrset)) + |> HttpClient.patch!(rrset_body) |> process_request_response end diff --git a/lib/powerdnsex/models/resource_record_set.ex b/lib/powerdnsex/models/resource_record_set.ex index 52dbed2..d02d2c9 100644 --- a/lib/powerdnsex/models/resource_record_set.ex +++ b/lib/powerdnsex/models/resource_record_set.ex @@ -35,21 +35,23 @@ 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) + format_attrs(new_attrs, rrset) + |> Enum.reduce(rrset, fn( {attr, value}, rrset) -> + %{rrset | attr => value} + end) end ### # Private ### + # + defp format_attrs(new_attrs, rrset) do + record = %Record{content: new_attrs.content, disabled: new_attrs.disabled } + %{ + records: [record], + ttl: Map.get(new_attrs, :ttl, rrset.ttl) + } + end defp set_attrs(rrset, attr_name, attrs) do if Map.has_key?(attrs, attr_name) do |