Current section

Files

Jump to
ex_oanda lib models response orders create_order.ex
Raw

lib/models/response/orders/create_order.ex

defmodule ExOanda.Response.CreateOrder do
@moduledoc """
Schema for Oanda create order response.
[Oanda Docs](https://developer.oanda.com/rest-live-v20/order-ep/)
"""
use TypedEctoSchema
import Ecto.Changeset
alias ExOanda.{
OrderCancelTransaction,
OrderFillTransaction,
Transaction
}
@primary_key false
typed_embedded_schema do
embeds_one :order_create_transaction, Transaction
embeds_one :order_fill_transaction, OrderFillTransaction
embeds_one :order_cancel_transaction, OrderCancelTransaction
embeds_one :order_reissue_transaction, Transaction
embeds_one :order_reissue_reject_transaction, Transaction
embeds_one :order_reject_transaction, Transaction
field(:related_transaction_ids, {:array, :string})
field(:last_transaction_id, :string)
end
@doc false
def changeset(struct, params) do
struct
|> cast(params, [:related_transaction_ids, :last_transaction_id])
|> cast_embed(:order_create_transaction)
|> cast_embed(:order_fill_transaction)
|> cast_embed(:order_cancel_transaction)
|> cast_embed(:order_reissue_transaction)
|> cast_embed(:order_reissue_reject_transaction)
|> cast_embed(:order_reject_transaction)
end
end