Current section

Files

Jump to
elixir_plaid lib plaid payment_initiation get_payment_response.ex
Raw

lib/plaid/payment_initiation/get_payment_response.ex

defmodule Plaid.PaymentInitiation.GetPaymentResponse do
@moduledoc """
[Plaid API /payment_initiation/payment/get response schema.](https://plaid.com/docs/api/products/#payment_initiationpaymentget)
"""
@behaviour Plaid.Castable
alias Plaid.Castable
alias Plaid.PaymentInitiation.{Amount, Schedule}
@type t :: %__MODULE__{
payment_id: String.t(),
payment_token: String.t(),
amount: Amount.t(),
status: String.t(),
recipient_id: String.t(),
reference: String.t(),
last_status_update: String.t(),
schedule: Schedule.t() | nil,
adjusted_reference: String.t() | nil,
payment_expiration_time: String.t() | nil,
request_id: String.t()
}
defstruct [
:payment_id,
:payment_token,
:amount,
:status,
:recipient_id,
:reference,
:last_status_update,
:schedule,
:adjusted_reference,
:payment_expiration_time,
:request_id
]
@impl true
def cast(generic_map) do
%__MODULE__{
payment_id: generic_map["payment_id"],
payment_token: generic_map["payment_token"],
amount: Castable.cast(Amount, generic_map["amount"]),
status: generic_map["status"],
recipient_id: generic_map["recipient_id"],
reference: generic_map["reference"],
last_status_update: generic_map["last_status_update"],
schedule: Castable.cast(Schedule, generic_map["schedule"]),
adjusted_reference: generic_map["adjust_reference"],
payment_expiration_time: generic_map["payment_expiration_time"],
request_id: generic_map["request_id"]
}
end
end