Class: ItemBuilder::Modes::QuantityService

Inherits:
Object
  • Object
show all
Includes:
ItemBuilder::Modes
Defined in:
lib/item_builder/modes/quantity_service.rb

Constant Summary collapse

QUANTITY_CHANNEL =
{}.tap do |hash|
  hash[3]       = :Lazada
  hash[9]       = :Blibli
  hash[13]      = :Zalora
end.freeze

Instance Attribute Summary

Attributes included from ItemBuilder::Modes

#listing, #variants, #wh_spaces

Instance Method Summary collapse

Methods included from ItemBuilder::Modes

#base, #initialize

Instance Method Details

#available_quantityObject



49
50
51
52
53
54
55
# File 'lib/item_builder/modes/quantity_service.rb', line 49

def available_quantity
  ItemBuilder::GetQuantityService.new(
    listing: listing,
    variant: variant,
    wh_sp: warehouse
  ).perform
end

#channel_nameObject



45
46
47
# File 'lib/item_builder/modes/quantity_service.rb', line 45

def channel_name
  QUANTITY_CHANNEL[listing.channel_id].to_s
end

#performObject



21
22
23
# File 'lib/item_builder/modes/quantity_service.rb', line 21

def perform
  to_h.merge(base)
end

#qtyObject



31
32
33
34
35
36
37
# File 'lib/item_builder/modes/quantity_service.rb', line 31

def qty
  if channel_name.empty?
    available_quantity
  else
    qty_channel
  end
end

#qty_channelObject



39
40
41
42
43
# File 'lib/item_builder/modes/quantity_service.rb', line 39

def qty_channel
  class_name = "ItemBuilder::Modes::Quantity::#{channel_name}Service"
  qty_channel_service = class_name.constantize
  qty_channel_service.new(listing, available_quantity).perform
end

#to_hObject



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

def to_h
  {
    quantity: qty
  }
end

#variantObject



61
62
63
# File 'lib/item_builder/modes/quantity_service.rb', line 61

def variant
  variants.select {|v| v.id == listing.variant_id }.first
end

#warehouseObject



57
58
59
# File 'lib/item_builder/modes/quantity_service.rb', line 57

def warehouse
  wh_spaces.select {|ws| ws.item_variant_id == listing.variant_id }.first
end