class FastBound::Disposition

Constants

COMMIT_ATTRS
CREATE_AS_DESTROYED_ATTRS
CREATE_AS_NFA_ATTRS
CREATE_AS_THEFT_LOSS_ATTRS
CREATE_ATTRS
EDIT_AND_CREATE_COMMIT_ATTRS
ENDPOINTS
ITEM_ATTRS

Public Class Methods

new(client) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 75
def initialize(client)
  @client = client
end

Public Instance Methods

add_items(disposition_id, items_data) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 171
def add_items(disposition_id, items_data)
  items_data.each { |item| requires!(item, :id) }

  endpoint = ENDPOINTS[:add_items] % disposition_id
  items_data = { items: items_data.map { |item| standardize_body_data(item, ITEM_ATTRS[:add]) } }

  post_request(@client, endpoint, items_data)
end
add_items_by_external_id(disposition_id, items_data) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 180
def add_items_by_external_id(disposition_id, items_data)
  items_data.each { |item| requires!(item, :external_id) }

  endpoint = ENDPOINTS[:add_items_by_external_id] % disposition_id
  items_data = { items: items_data.map { |item| standardize_body_data(item, ITEM_ATTRS[:add_by_external_id]) } }

  post_request(@client, endpoint, items_data)
end
attach_contact(disposition_id, contact_id) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 214
def attach_contact(disposition_id, contact_id)
  endpoint = ENDPOINTS[:attach_contact] % [disposition_id, contact_id]

  put_request(@client, endpoint)
end
commit(disposition_id, commit_data = {}) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 148
def commit(disposition_id, commit_data = {})
  endpoint = ENDPOINTS[:commit] % disposition_id
  commit_data = { manufacturingChanges: standardize_body_data(commit_data, COMMIT_ATTRS) }

  post_request(@client, endpoint, commit_data)
end
create(disposition_data) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 91
def create(disposition_data)
  requires!(disposition_data, *CREATE_ATTRS[:required])

  endpoint = ENDPOINTS[:create]
  disposition_data = standardize_body_data(disposition_data, CREATE_ATTRS[:permitted])

  post_request(@client, endpoint, disposition_data)
end
create_and_commit(disposition_data, items_data, contact_data = {}, commit_data = nil) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 155
def create_and_commit(disposition_data, items_data, contact_data = {}, commit_data = nil)
  items_data.each { |item| requires!(item, :id) }

  endpoint = ENDPOINTS[:create_and_commit]
  disposition_data = standardize_body_data(disposition_data, EDIT_AND_CREATE_COMMIT_ATTRS)
  items_data = items_data.map { |item| standardize_body_data(item, ITEM_ATTRS[:add]) }
  contact_data = standardize_body_data(contact_data, Contact::CREATE_AND_EDIT_ATTRS)
  request_data = disposition_data.merge(
    contact: contact_data,
    items: items_data,
    manufacturingChanges: commit_data
  ).compact

  post_request(@client, endpoint, request_data)
end
create_as_destroyed(disposition_data) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 116
def create_as_destroyed(disposition_data)
  endpoint = ENDPOINTS[:create_as_destroyed]
  disposition_data = standardize_body_data(disposition_data, CREATE_AS_DESTROYED_ATTRS)

  post_request(@client, endpoint, disposition_data)
end
create_as_nfa(disposition_data) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 100
def create_as_nfa(disposition_data)
  requires!(disposition_data, *CREATE_AS_NFA_ATTRS[:required])

  endpoint = ENDPOINTS[:create_as_nfa]
  disposition_data = standardize_body_data(disposition_data, CREATE_AS_NFA_ATTRS[:permitted])

  post_request(@client, endpoint, disposition_data)
end
create_as_theft_loss(disposition_data) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 109
def create_as_theft_loss(disposition_data)
  endpoint = ENDPOINTS[:create_as_theft_loss]
  disposition_data = standardize_body_data(disposition_data, CREATE_AS_THEFT_LOSS_ATTRS)

  post_request(@client, endpoint, disposition_data)
end
delete(disposition_id) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 142
def delete(disposition_id)
  endpoint = ENDPOINTS[:delete] % disposition_id

  delete_request(@client, endpoint)
end
edit(disposition_id, disposition_data) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 123
def edit(disposition_id, disposition_data)
  endpoint = ENDPOINTS[:edit] % disposition_id
  disposition_data = standardize_body_data(disposition_data, EDIT_AND_CREATE_COMMIT_ATTRS)

  put_request(@client, endpoint, disposition_data)
end
edit_item_price(disposition_id, item_id, price) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 195
def edit_item_price(disposition_id, item_id, price)
  endpoint = ENDPOINTS[:edit_item_price] % [disposition_id, item_id]
  item_data = { price: price }

  put_request(@client, endpoint, item_data)
end
fetch(disposition_id) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 130
def fetch(disposition_id)
  endpoint = ENDPOINTS[:fetch] % disposition_id

  get_request(@client, endpoint)
end
fetch_by_external_id(external_id) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 136
def fetch_by_external_id(external_id)
  endpoint = ENDPOINTS[:fetch_by_external_id] % external_id

  get_request(@client, endpoint)
end
fetch_items(disposition_id) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 189
def fetch_items(disposition_id)
  endpoint = ENDPOINTS[:fetch_items] % disposition_id

  get_request(@client, endpoint)
end
list(params = {}) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 79
def list(params = {})
  endpoint = ENDPOINTS[:list] % convert_params_to_request_query(params)

  get_request(@client, endpoint)
end
list_only_with_4473(params = {}) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 85
def list_only_with_4473(params = {})
  endpoint = ENDPOINTS[:list_only_with_4473] % convert_params_to_request_query(params)

  get_request(@client, endpoint)
end
remove_item(disposition_id, item_id) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 202
def remove_item(disposition_id, item_id)
  endpoint = ENDPOINTS[:remove_item] % [disposition_id, item_id]

  delete_request(@client, endpoint)
end
remove_item_by_external_id(disposition_id, external_id) click to toggle source
# File lib/fastbound-ruby/disposition.rb, line 208
def remove_item_by_external_id(disposition_id, external_id)
  endpoint = ENDPOINTS[:remove_item_by_external_id] % [disposition_id, external_id]

  delete_request(@client, endpoint)
end