diff options
Diffstat (limited to 'lib/powerdnsex/managers/records_manager.ex')
-rw-r--r-- | lib/powerdnsex/managers/records_manager.ex | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/lib/powerdnsex/managers/records_manager.ex b/lib/powerdnsex/managers/records_manager.ex index 876234f..c7c586d 100644 --- a/lib/powerdnsex/managers/records_manager.ex +++ b/lib/powerdnsex/managers/records_manager.ex @@ -8,7 +8,8 @@ defmodule PowerDNSex.Managers.RecordsManager do def create(%Zone{} = zone, %{} = rrset_attrs) do - rrset_attrs = Map.merge(rrset_attrs, %{changetype: "REPLACE"}) + rrset_attrs = Map.merge(rrset_attrs, %{"changetype" => "REPLACE"}) + IO.puts "RRSet create: #{inspect rrset_attrs}" patch(zone, rrset_attrs) end @@ -20,12 +21,12 @@ defmodule PowerDNSex.Managers.RecordsManager do end def update(%Zone{} = zone, %{} = rrset_attrs) do - rrset_attrs = Map.merge(rrset_attrs, %{changetype: "REPLACE"}) + rrset_attrs = Map.merge(rrset_attrs, %{"changetype" => "REPLACE"}) patch(zone, rrset_attrs) end def delete(%Zone{} = zone, %{} = rrset_attrs) do - rrset_attrs = Map.merge(rrset_attrs, %{changetype: "DELETE"}) + rrset_attrs = Map.merge(rrset_attrs, %{"changetype" => "DELETE"}) patch(zone, rrset_attrs) end @@ -35,8 +36,13 @@ defmodule PowerDNSex.Managers.RecordsManager do defp process_request_response(%Response{body: body, status_code: status}) do case status do - s when s < 300 -> :ok - s when s >= 300 -> body |> Poison.decode!(as: %Error{}) + s when s == 204 -> :ok + s when s < 300 -> + IO.puts "Response status: #{s}" + :ok + s when s >= 300 -> + error = Poison.decode!(body, as: %Error{}) + {:error, %{error | http_status_code: s} } end end @@ -45,6 +51,11 @@ defmodule PowerDNSex.Managers.RecordsManager do end defp patch(%Zone{} = zone, %{} = rrset_attrs) do + IO.puts "Patch rrset_attrs: #{inspect rrset_attrs}" + rrset_struct = RRSet.build(rrset_attrs) + IO.puts "[Patch] Struct: #{inspect rrset_struct}" + IO.puts "[Patch] Body: #{inspect RRSet.as_body(rrset_struct)}" + zone.url |> HttpClient.patch!(RRSet.as_body(RRSet.build(rrset_attrs))) |> process_request_response |