diff options
author | Rodrigo Coutinho <digao@osfeio.com> | 2017-12-29 18:32:36 -0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-29 18:32:36 -0200 |
commit | f75b83f1713a7c7aacfcdd8a4134a9113981d136 (patch) | |
tree | 6e4ca433c2665b002f0c885dde82bdab16556429 /lib | |
parent | bump version (diff) |
Fix test suite (#11)
* Fix broken specs and update exvcr
* Provide default configuration to run tests
* Show nameservers in zone
Diffstat (limited to 'lib')
-rw-r--r-- | lib/powerdnsex/managers/records_manager.ex | 12 | ||||
-rw-r--r-- | lib/powerdnsex/managers/zones_manager.ex | 5 | ||||
-rw-r--r-- | lib/powerdnsex/models/resource_record_set.ex | 8 |
3 files changed, 15 insertions, 10 deletions
diff --git a/lib/powerdnsex/managers/records_manager.ex b/lib/powerdnsex/managers/records_manager.ex index c5dd051..9b6a96f 100644 --- a/lib/powerdnsex/managers/records_manager.ex +++ b/lib/powerdnsex/managers/records_manager.ex @@ -2,7 +2,7 @@ defmodule PowerDNSex.Managers.RecordsManager do require Logger alias PowerDNSex.HttpClient - alias PowerDNSex.Models.{Zone, Record, Error} + alias PowerDNSex.Models.{Zone, Error} alias PowerDNSex.Models.ResourceRecordSet, as: RRSet alias PowerDNSex.Managers.ZonesManager alias HTTPoison.Response @@ -29,7 +29,7 @@ defmodule PowerDNSex.Managers.RecordsManager do updated_rrset = Map.merge(updated_rrset, %{changetype: "REPLACE"}) patch(zone, updated_rrset) else - error_msg = "Record #{rrset_name}, type #{rrset_type}, not found!" + error_msg = "Record #{rrset_find_params.name}, type #{rrset_type}, not found!" {:error, %Error{error: error_msg, http_status_code: 404}} end end @@ -41,7 +41,7 @@ defmodule PowerDNSex.Managers.RecordsManager do ### # Private - ## + ### defp process_request_response(%Response{body: body, status_code: status}) do case status do @@ -70,10 +70,4 @@ defmodule PowerDNSex.Managers.RecordsManager do defp patch(%Zone{} = zone, %{} = rrset_attrs) do patch(zone, RRSet.build(rrset_attrs)) end - - defp has_attrs?(rrset, attrs) do - attrs - |> Map.keys - |> Enum.all?(&(equal_attr?(&1, attrs[&1], rrsets))) - end end diff --git a/lib/powerdnsex/managers/zones_manager.ex b/lib/powerdnsex/managers/zones_manager.ex index 0430223..c7ec1ab 100644 --- a/lib/powerdnsex/managers/zones_manager.ex +++ b/lib/powerdnsex/managers/zones_manager.ex @@ -56,8 +56,11 @@ defmodule PowerDNSex.Managers.ZonesManager do end defp decode_body(body) do - body + zone = body |> Poison.decode!(as: %Zone{rrsets: [%ResourceRecordSet{records: [%Record{}]}]}) + + nameservers = ResourceRecordSet.nameservers(zone.rrsets) + Map.put(zone, :nameservers, nameservers) end end diff --git a/lib/powerdnsex/models/resource_record_set.ex b/lib/powerdnsex/models/resource_record_set.ex index c0845d9..1a410b1 100644 --- a/lib/powerdnsex/models/resource_record_set.ex +++ b/lib/powerdnsex/models/resource_record_set.ex @@ -47,6 +47,14 @@ defmodule PowerDNSex.Models.ResourceRecordSet do end) end + def nameservers(rrsets) do + rrset = Enum.find(rrsets, fn(rrset) -> rrset.type == "NS" end) + nameservers = case rrset do + nil -> [] + _ -> Enum.map(rrset.records, &(&1.content) ) + end + end + ### # Private ### |