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