defmodule Circlex.Struct.Transfer do
import Circlex.Struct.Util
defstruct [:id, :source, :destination, :amount, :transaction_hash, :status, :create_date]
alias Circlex.Struct.{Amount, SourceDest}
def deserialize(transfer) do
%__MODULE__{
id: fetch(transfer, :id),
source: SourceDest.deserialize(fetch(transfer, :source)),
destination: SourceDest.deserialize(fetch(transfer, :destination)),
amount: Amount.deserialize(fetch(transfer, :amount)),
transaction_hash: fetch(transfer, :transactionHash),
status: fetch(transfer, :status),
create_date: fetch(transfer, :createDate)
}
end
def serialize(transfer) do
%{
id: transfer.id,
source: SourceDest.serialize(transfer.source),
destination: SourceDest.serialize(transfer.destination),
amount: Amount.serialize(transfer.amount),
transactionHash: transfer.transaction_hash,
status: transfer.status,
createDate: transfer.create_date
}
end
end