Module: ItemBuilder::Modes

Included in:
ActiveService, PriceService, QuantityService, SimpleService
Defined in:
lib/item_builder/modes.rb,
lib/item_builder/modes/base_service.rb,
lib/item_builder/modes/price_service.rb,
lib/item_builder/modes/active_service.rb,
lib/item_builder/modes/simple_service.rb,
lib/item_builder/modes/quantity_service.rb

Defined Under Namespace

Classes: ActiveService, BaseService, PriceService, QuantityService, SimpleService

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#listingObject (readonly)

Returns the value of attribute listing.



10
11
12
# File 'lib/item_builder/modes.rb', line 10

def listing
  @listing
end

Instance Method Details

#baseObject



16
17
18
19
20
21
22
23
# File 'lib/item_builder/modes.rb', line 16

def base
  {
    id: listing.id,
    local_id: listing.local_id,
    local_item_id: listing.local_item_id,
    sku: listing.sku
  }
end

#initialize(args) ⇒ Object



11
12
13
14
# File 'lib/item_builder/modes.rb', line 11

def initialize(args)
  @listing = args.fetch(:listing)
  warehouse
end

#warehouseObject



25
26
27
28
29
# File 'lib/item_builder/modes.rb', line 25

def warehouse
  warehouse_spaces.each do |warehouse_space|
    warehouses << to_h(warehouse_space)
  end
end

#warehouse_mapping(warehouse_id) ⇒ Object



35
36
37
38
39
40
# File 'lib/item_builder/modes.rb', line 35

def warehouse_mapping(warehouse_id)
  WarehouseMapping
    .where(profile_channel_association_id:
      listing.profile_channel_association_id,
           warehouse_id: warehouse_id)
end

#warehouse_spacesObject



31
32
33
# File 'lib/item_builder/modes.rb', line 31

def warehouse_spaces
  WarehouseSpace.where(item_variant_id: listing.variant_id)
end

#warehousesObject



49
50
51
# File 'lib/item_builder/modes.rb', line 49

def warehouses
  @warehouses ||= []
end

#wh_mapping(warehouse_id) ⇒ Object



42
43
44
45
46
47
# File 'lib/item_builder/modes.rb', line 42

def wh_mapping(warehouse_id)
  data = warehouse_mapping(warehouse_id)
  return nil if data.empty?

  warehouse_mapping(warehouse_id)[0].channel_warehouse_id
end