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_mappings ⇒ 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
45 46 47 |
# File 'lib/tiny_builder/data_loader.rb', line 45 def associated_listings @associated_listings ||= collect_associated_listings end |
#collect_associated_listings ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/tiny_builder/data_loader.rb', line 49 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
90 91 92 93 94 95 96 |
# File 'lib/tiny_builder/data_loader.rb', line 90 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_mappings ⇒ Object
32 33 34 35 |
# File 'lib/tiny_builder/data_loader.rb', line 32 def get_warehouse_mappings wh_mappings = MongoWarehouseMapping.where(profile_channel_association_id: account_id).map{|wm| wm} wh_mappings.select{|wm| !MongoWarehouse.find_by(old_id: wm.warehouse_id).consignment } end |
#get_warehouse_spaces ⇒ Object
66 67 68 69 70 71 72 |
# File 'lib/tiny_builder/data_loader.rb', line 66 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
74 75 76 |
# File 'lib/tiny_builder/data_loader.rb', line 74 def listing_warehouse_spaces(listing) warehouse_spaces.select{ |wh_space| wh_space.item_variant_id == listing.master_variant_id } end |
#mapped_data ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/tiny_builder/data_loader.rb', line 78 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
41 42 43 |
# File 'lib/tiny_builder/data_loader.rb', line 41 def mapped_wh_mappings @mapped_wh_mappings ||= warehouse_mappings.map{|wm| [wm.warehouse_id, wm.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
37 38 39 |
# File 'lib/tiny_builder/data_loader.rb', line 37 def warehouse_mapping warehouse_mapping ||= warehouse_mappings.first end |
#warehouse_mappings ⇒ Object
28 29 30 |
# File 'lib/tiny_builder/data_loader.rb', line 28 def warehouse_mappings @warehouse_mappings ||= get_warehouse_mappings end |
#warehouse_spaces ⇒ Object
62 63 64 |
# File 'lib/tiny_builder/data_loader.rb', line 62 def warehouse_spaces @warehouse_spaces ||= get_warehouse_spaces end |