From 267959fe1f45a50795d6e76026d2872a9a6c4dbb Mon Sep 17 00:00:00 2001 From: Rodrigo Coutinho Date: Thu, 6 Oct 2016 20:13:05 -0300 Subject: Revert resource record format and apply style guide --- lib/powerdnsex/managers/records_manager.ex | 5 +++-- lib/powerdnsex/managers/zones_manager.ex | 8 +++++--- lib/powerdnsex/models/record.ex | 4 ++-- lib/powerdnsex/models/resource_record_set.ex | 29 ++++++++++++++-------------- 4 files changed, 24 insertions(+), 22 deletions(-) (limited to 'lib') diff --git a/lib/powerdnsex/managers/records_manager.ex b/lib/powerdnsex/managers/records_manager.ex index 37e6096..9bc3510 100644 --- a/lib/powerdnsex/managers/records_manager.ex +++ b/lib/powerdnsex/managers/records_manager.ex @@ -50,7 +50,7 @@ defmodule PowerDNSex.Managers.RecordsManager do :ok s when s >= 300 -> error = Poison.decode!(body, as: %Error{}) - {:error, %{error | http_status_code: s} } + {:error, %{error | http_status_code: s}} end end @@ -72,7 +72,8 @@ defmodule PowerDNSex.Managers.RecordsManager do end defp has_attrs?(rrset, attrs) do - Map.keys(attrs) + 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 5fa5a74..0430223 100644 --- a/lib/powerdnsex/managers/zones_manager.ex +++ b/lib/powerdnsex/managers/zones_manager.ex @@ -7,7 +7,8 @@ defmodule PowerDNSex.Managers.ZonesManager do alias HTTPoison.Response def create(%Zone{} = zone, server_name \\ @default_server) do - zone_path(server_name) + server_name + |> zone_path |> HttpClient.post!(Zone.as_body(zone)) |> process_request_response end @@ -15,7 +16,8 @@ defmodule PowerDNSex.Managers.ZonesManager do def show(zone_name, server_name \\ @default_server) when is_bitstring(zone_name) do - zone_path(server_name, zone_name) + server_name + |> zone_path(zone_name) |> HttpClient.get! |> process_request_response end @@ -46,7 +48,7 @@ defmodule PowerDNSex.Managers.ZonesManager do s when s == 204 -> {:ok, %{}} s when s < 300 -> {:ok, decode_body(body)} s when s == 500 -> - {:error, %Error{error: "Internal Server Error"}, http_status_code: s} + {:error, %Error{error: "Internal Server Error", http_status_code: s}} s when s >= 300 -> error = %{Poison.decode!(body,as: %Error{}) | http_status_code: s} {:error, error} diff --git a/lib/powerdnsex/models/record.ex b/lib/powerdnsex/models/record.ex index 0c40e65..ed0e327 100644 --- a/lib/powerdnsex/models/record.ex +++ b/lib/powerdnsex/models/record.ex @@ -20,8 +20,8 @@ defmodule PowerDNSex.Models.Record do end def find(records, attrs) when is_list(records) do - Enum.find(records, fn(record)-> - Enum.all?(attrs, fn({attr, attr_value})-> + Enum.find(records, fn(record) -> + Enum.all?(attrs, fn({attr, attr_value}) -> Map.get(record, attr) == attr_value end) end) diff --git a/lib/powerdnsex/models/resource_record_set.ex b/lib/powerdnsex/models/resource_record_set.ex index d02d2c9..c0845d9 100644 --- a/lib/powerdnsex/models/resource_record_set.ex +++ b/lib/powerdnsex/models/resource_record_set.ex @@ -10,7 +10,7 @@ defmodule PowerDNSex.Models.ResourceRecordSet do end def as_body(%__MODULE__{} = rrset) do - %{ rrsets: [ + %{rrsets: [ %{ name: rrset.name, type: rrset.type, @@ -23,8 +23,8 @@ defmodule PowerDNSex.Models.ResourceRecordSet do 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 +35,22 @@ defmodule PowerDNSex.Models.ResourceRecordSet do end def update(%__MODULE__{} = rrset, %{} = new_attrs) do - format_attrs(new_attrs, rrset) - |> Enum.reduce(rrset, fn( {attr, value}, rrset) -> - %{rrset | attr => value} - end) + 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) 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 @@ -60,7 +59,7 @@ defmodule PowerDNSex.Models.ResourceRecordSet do _ -> Map.fetch!(attrs, attr_name) end - %{ rrset | attr_name => attr_value } + %{rrset | attr_name => attr_value} else rrset end -- cgit v1.2.3