Current section

Files

Jump to
tai lib tai orders.ex
Raw

lib/tai/orders.ex

defmodule Tai.Orders do
alias Tai.Orders.{
Order,
OrderSubmissions,
Worker
}
@type submission :: OrderSubmissions.Factory.submission()
@type order :: Order.t()
@type create_response :: Worker.create_response()
@type cancel_response :: Worker.cancel_response()
@type amend_attrs :: Worker.amend_attrs()
@type amend_response :: Worker.amend_response()
@type amend_bulk_response :: Worker.amend_bulk_response()
@timeout 5_000
@spec create(submission) :: create_response
def create(submission) do
:poolboy.transaction(
:order_worker,
& Worker.create(&1, submission),
@timeout
)
end
@spec cancel(order) :: cancel_response
@spec cancel(order, module) :: cancel_response
def cancel(order, provider \\ Worker.Provider) do
:poolboy.transaction(
:order_worker,
& Worker.cancel(&1, order, provider),
@timeout
)
end
@spec amend(order, amend_attrs) :: amend_response
@spec amend(order, amend_attrs, module) :: amend_response
def amend(order, attrs, provider \\ Worker.Provider) do
:poolboy.transaction(
:order_worker,
& Worker.amend(&1, order, attrs, provider),
@timeout
)
end
@spec amend_bulk([{order, amend_attrs}]) :: amend_bulk_response
@spec amend_bulk([{order, amend_attrs}], module) :: amend_bulk_response
def amend_bulk(amend_set, provider \\ Worker.Provider) do
:poolboy.transaction(
:order_worker,
& Worker.amend_bulk(&1, amend_set, provider),
@timeout
)
end
end