lib/responses/sources/card.ex

defmodule Responses.Sources.Card do
  alias Responses.Common.{Address, Phone}

  def build(%{"type" => "card"} = params) do
    %{
      avs_check: params["avs_check"],
      billing_address: Address.build(params["billing_address"]),
      bin: params["bin"],
      card_category: params["card_category"],
      card_type: params["card_type"],
      expiry_month: params["expiry_month"],
      expiry_year: params["expiry_year"],
      fingerprint: params["fingerprint"],
      id: params["id"],
      issuer: params["issuer"],
      issuer_country: params["issuer_country"],
      last4: params["last4"],
      name: params["name"],
      payment_account_reference: params["payment_account_reference"],
      phone: Phone.build(params["phone"]),
      product_id: params["product_id"],
      product_type: params["product_type"],
      scheme: params["scheme"],
      type: "card"
    }
  end
end