Class: TinyBuilder::PriceBuilder

Inherits:
BaseBuilder show all
Defined in:
lib/tiny_builder/price_builder.rb

Instance Attribute Summary

Attributes inherited from BaseBuilder

#channel_id, #inventory_v2, #listings, #mwh

Instance Method Summary collapse

Methods inherited from BaseBuilder

#initialize, #perform

Methods included from QuantityHelper

#bundle_warehouse_spaces, #counter_params, #multi_warehouse_spaces, #quantity, #quantity_hash, #single_warehouse_space, #warehouse_quantities, #wh_spaces

Methods included from DataLoader

#account_id, #associated_listings, #associated_stock_allocations, #associated_stock_allocs, #collect_associated_listings, #collect_variants_data, #get_mongo_wh_spaces, #get_warehouse_spaces, #listing_warehouse_spaces, #mapped_data, #mapped_wh_mappings, #stock_alloc, #stock_allocations, #variant_ids, #variants, #warehouse_mapping, #warehouse_mappings, #warehouse_spaces

Constructor Details

This class inherits a constructor from TinyBuilder::BaseBuilder

Instance Method Details

#price_hash(listing) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/tiny_builder/price_builder.rb', line 15

def price_hash(listing)
  {
    price: listing.price,
    sale_price: sale_price(listing),
    sale_start_at: sale_start_at(listing),
    sale_end_at: sale_end_at(listing)
  }
end

#sale_end_at(listing) ⇒ Object



44
45
46
47
48
# File 'lib/tiny_builder/price_builder.rb', line 44

def sale_end_at(listing)
  listing.sale_end_at
rescue
  nil
end

#sale_price(listing) ⇒ Object



32
33
34
35
36
# File 'lib/tiny_builder/price_builder.rb', line 32

def sale_price(listing)
  listing.sale_price
rescue
  nil
end

#sale_start_at(listing) ⇒ Object



38
39
40
41
42
# File 'lib/tiny_builder/price_builder.rb', line 38

def sale_start_at(listing)
  listing.sale_start_at
rescue
  nil
end

#to_h(listing) ⇒ Object



7
8
9
10
11
12
13
# File 'lib/tiny_builder/price_builder.rb', line 7

def to_h(listing)
  if mwh
    { warehouse: warehouse_prices(listing) }
  else
    price_hash(listing)
  end
end

#warehouse_prices(listing) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/tiny_builder/price_builder.rb', line 24

def warehouse_prices(listing)
  [
    {
      warehouse_id: 'no-wh-for-price'
    }.merge(price_hash(listing))
  ]
end