Module: TinyBuilder::DataLoader
- Included in:
- BaseBuilder
- Defined in:
- lib/tiny_builder/data_loader.rb
Instance Method Summary collapse
- #account_id ⇒ Object
- #associated_listings ⇒ Object
- #collect_associated_listings ⇒ Object
- #collect_variants_data ⇒ Object
- #get_mongo_wh_spaces ⇒ Object
- #get_warehouse_spaces ⇒ Object
- #listing_warehouse_spaces(listing) ⇒ Object
- #mapped_data ⇒ Object
- #mapped_wh_mappings ⇒ Object
- #variant_ids ⇒ Object
- #variants ⇒ Object
- #warehouse_mapping ⇒ Object
- #warehouse_mappings ⇒ Object
- #warehouse_spaces ⇒ Object
Instance Method Details
#account_id ⇒ Object
24 25 26 |
# File 'lib/tiny_builder/data_loader.rb', line 24 def account_id listings[0]&.account_id end |
#associated_listings ⇒ Object
42 43 44 |
# File 'lib/tiny_builder/data_loader.rb', line 42 def associated_listings @associated_listings ||= collect_associated_listings end |
#collect_associated_listings ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/tiny_builder/data_loader.rb', line 46 def collect_associated_listings data = [] MongoVariantListing.in(master_variant_id: variant_ids).where(:local_id.exists => true).each do |listing| begin listing.icava_id data << listing rescue next end end data end |
#collect_variants_data ⇒ Object
11 12 13 14 15 16 17 18 |
# File 'lib/tiny_builder/data_loader.rb', line 11 def collect_variants_data data = Variant.where( id: listings.map(&:master_variant_id) ) listings.map do |listing| [listing.icava_id, data.find{ |v| v.id == listing.master_variant_id }] end end |
#get_mongo_wh_spaces ⇒ Object
87 88 89 90 91 92 93 |
# File 'lib/tiny_builder/data_loader.rb', line 87 def get_mongo_wh_spaces spaces = [] MongoWarehouseSpace.in(item_variant_id: variant_ids).where(:warehouse_id.exists => true).each do |ws| spaces << ws end spaces end |
#get_warehouse_spaces ⇒ Object
63 64 65 66 67 68 69 |
# File 'lib/tiny_builder/data_loader.rb', line 63 def get_warehouse_spaces if inventory_v2 get_mongo_wh_spaces else WarehouseSpace.where(item_variant_id: variant_ids).where.not(warehouse_id: nil) end end |
#listing_warehouse_spaces(listing) ⇒ Object
71 72 73 |
# File 'lib/tiny_builder/data_loader.rb', line 71 def listing_warehouse_spaces(listing) warehouse_spaces.select{ |wh_space| wh_space.item_variant_id == listing.master_variant_id } end |
#mapped_data ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/tiny_builder/data_loader.rb', line 75 def mapped_data @mapped_data ||= listings.map do |listing| [ listing.icava_id, { variant: variants.find{ |v| v.id == listing.master_variant_id }, warehouse_spaces: listing_warehouse_spaces(listing) } ] end.to_h end |
#mapped_wh_mappings ⇒ Object
38 39 40 |
# File 'lib/tiny_builder/data_loader.rb', line 38 def mapped_wh_mappings @mapped_wh_mappings ||= warehouse_mappings.pluck(:warehouse_id, :channel_warehouse_id).to_h end |
#variant_ids ⇒ Object
20 21 22 |
# File 'lib/tiny_builder/data_loader.rb', line 20 def variant_ids @variant_ids ||= variants.map(&:id) end |
#variants ⇒ Object
5 6 7 8 9 |
# File 'lib/tiny_builder/data_loader.rb', line 5 def variants @variants ||= Variant.where( id: listings.map(&:master_variant_id) ) end |
#warehouse_mapping ⇒ Object
34 35 36 |
# File 'lib/tiny_builder/data_loader.rb', line 34 def warehouse_mapping warehouse_mapping ||= warehouse_mappings.first end |
#warehouse_mappings ⇒ Object
28 29 30 31 32 |
# File 'lib/tiny_builder/data_loader.rb', line 28 def warehouse_mappings @warehouse_mappings ||= WarehouseMapping.joins(:warehouse).where( profile_channel_association_id: account_id ).where(warehouses: {consignment: false}) end |
#warehouse_spaces ⇒ Object
59 60 61 |
# File 'lib/tiny_builder/data_loader.rb', line 59 def warehouse_spaces @warehouse_spaces ||= get_warehouse_spaces end |