lib/requests/payments/sources/id.ex
defmodule Requests.Payments.Sources.Id do
@moduledoc false
import Utilities, only: [atomize_keys: 1]
@type t :: %__MODULE__{
type: String.t(),
id: String.t(),
cvv: String.t(),
payment_method: String.t()
}
@enforce_keys [:type, :id]
defstruct [
:type,
:id,
:cvv,
:payment_method
]
def build(raw_params) when is_map(raw_params) do
params = atomize_keys(raw_params)
%{
type: "id",
id: params[:id],
cvv: params[:cvv],
payment_method: params[:payment_method]
}
end
def build(_), do: nil
end