defmodule Responses.PaymentCapture do
@derive Jason.Encoder
defstruct [:action_id, :reference, :_links]
def build(params) when is_map(params) do
%__MODULE__{
action_id: params["action_id"],
reference: params["reference"],
_links: build_links(params["_links"])
}
end
def build(_), do: nil
defp build_links(links) when is_map(links) do
%{
payment: build_link(links["payment"]),
redirect: build_link(links["redirect"])
}
end
defp build_link(%{"href" => href}), do: %{href: href}
defp build_link(link), do: link
end