Module: TinyBuilder::DataLoader

Included in:
BaseBuilder
Defined in:
lib/tiny_builder/data_loader.rb

Instance Method Summary collapse

Instance Method Details

#account_idObject



24
25
26
# File 'lib/tiny_builder/data_loader.rb', line 24

def 
  listings[0]&.
end

#associated_listingsObject



45
46
47
# File 'lib/tiny_builder/data_loader.rb', line 45

def associated_listings
  @associated_listings ||= collect_associated_listings
end

#collect_associated_listingsObject



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_dataObject



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_spacesObject



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_mappingsObject



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: ).map{|wm| wm}
  wh_mappings.select{|wm| !MongoWarehouse.find_by(old_id: wm.warehouse_id).consignment }
end

#get_warehouse_spacesObject



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_dataObject



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_mappingsObject



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_idsObject



20
21
22
# File 'lib/tiny_builder/data_loader.rb', line 20

def variant_ids
  @variant_ids ||= variants.map(&:id)
end

#variantsObject



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_mappingObject



37
38
39
# File 'lib/tiny_builder/data_loader.rb', line 37

def warehouse_mapping
  warehouse_mapping ||= warehouse_mappings.first
end

#warehouse_mappingsObject



28
29
30
# File 'lib/tiny_builder/data_loader.rb', line 28

def warehouse_mappings
  @warehouse_mappings ||= get_warehouse_mappings
end

#warehouse_spacesObject



62
63
64
# File 'lib/tiny_builder/data_loader.rb', line 62

def warehouse_spaces
  @warehouse_spaces ||= get_warehouse_spaces
end