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



42
43
44
# File 'lib/tiny_builder/data_loader.rb', line 42

def associated_listings
  @associated_listings ||= collect_associated_listings
end

#collect_associated_listingsObject



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_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



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_spacesObject



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_dataObject



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_mappingsObject



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_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



34
35
36
# File 'lib/tiny_builder/data_loader.rb', line 34

def warehouse_mapping
  warehouse_mapping ||= warehouse_mappings.first
end

#warehouse_mappingsObject



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: 
  ).where(warehouses: {consignment: false})
end

#warehouse_spacesObject



59
60
61
# File 'lib/tiny_builder/data_loader.rb', line 59

def warehouse_spaces
  @warehouse_spaces ||= get_warehouse_spaces
end