Class: Spree::Imports::ProcessGroupJob

Inherits:
BaseJob
  • Object
show all
Defined in:
app/jobs/spree/imports/process_group_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(import_id, row_ids) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/jobs/spree/imports/process_group_job.rb', line 6

def perform(import_id, row_ids)
  import = Spree::Import.find(import_id)
  Spree::Current.store = import.store

  mappings = import.mappings.mapped.to_a
  schema_fields = import.schema_fields
  large = import.large_import?
  rows = import.rows.where(id: row_ids).order(:row_number)

  if large
    Spree::Events.disable do
      rows.each { |row| row.bulk_process!(mappings: mappings, schema_fields: schema_fields) }
    end
  else
    rows.each do |row|
      row.process!(mappings: mappings, schema_fields: schema_fields)
    end
  end

  check_import_completion(import, large)
end