Class: ShopifyAPI::InventoryLevel

Inherits:
Base
  • Object
show all
Defined in:
lib/shopify_api/resources/inventory_level.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

activate_session, api_version, api_version=, #as_json, clear_session, early_july_pagination?, #encode, headers, init_prefix, init_prefix_explicit, #persisted?, prefix, prefix=, prefix_source, resource_prefix, resource_prefix=, version_validation!

Methods included from Countable

#count

Class Method Details

.element_path(prefix_options = {}, query_options = nil) ⇒ Object

The default path structure in ActiveResource for delete would result in: /admin/api/<version>/inventory_levels/#{ inventory_level.id }.json?#{ params }, but since InventoryLevels are a second class resource made up of a Where and a What (Location and InventoryItem), it does not have a resource ID. Here we redefine element_path to remove the id so HTTP DELETE requests go to /admin/api/<version>/inventory_levels.json?#{ params } instead.


12
13
14
15
# File 'lib/shopify_api/resources/inventory_level.rb', line 12

def self.element_path(prefix_options = {}, query_options = nil)
  prefix_options, query_options = split_options(prefix_options) if query_options.nil?
  "#{prefix(prefix_options)}#{collection_name}.#{format.extension}#{query_string(query_options)}"
end

Instance Method Details

#adjust(available_adjustment) ⇒ Object


43
44
45
46
47
48
49
50
51
52
# File 'lib/shopify_api/resources/inventory_level.rb', line 43

def adjust(available_adjustment)
  body = {
    location_id: location_id,
    inventory_item_id: inventory_item_id,
    available_adjustment: available_adjustment,
  }
  load_attributes_from_response(
    self.class.post(:adjust, {}, body.to_json)
  )
end

#connect(relocate_if_necessary: nil) ⇒ Object


23
24
25
26
27
28
29
# File 'lib/shopify_api/resources/inventory_level.rb', line 23

def connect(relocate_if_necessary: nil)
  body = { location_id: location_id, inventory_item_id: inventory_item_id }
  body[:relocate_if_necessary] = relocate_if_necessary unless relocate_if_necessary.nil?
  load_attributes_from_response(
    self.class.post(:connect, {}, body.to_json)
  )
end

#destroyObject


17
18
19
20
21
# File 'lib/shopify_api/resources/inventory_level.rb', line 17

def destroy
  load_attributes_from_response(
    self.class.delete('/', location_id: location_id, inventory_item_id: inventory_item_id)
  )
end

#set(new_available, disconnect_if_necessary: nil) ⇒ Object


31
32
33
34
35
36
37
38
39
40
41
# File 'lib/shopify_api/resources/inventory_level.rb', line 31

def set(new_available, disconnect_if_necessary: nil)
  body = {
    location_id: location_id,
    inventory_item_id: inventory_item_id,
    available: new_available,
  }
  body[:disconnect_if_necessary] = disconnect_if_necessary unless disconnect_if_necessary.nil?
  load_attributes_from_response(
    self.class.post(:set, {}, body.to_json)
  )
end