Class: Workarea::Api::Admin::BulkUpsert

Inherits:
Object
  • Object
show all
Includes:
ApplicationDocument
Defined in:
app/models/workarea/api/admin/bulk_upsert.rb

Instance Method Summary collapse

Instance Method Details

#model_classObject



42
43
44
# File 'app/models/workarea/api/admin/bulk_upsert.rb', line 42

def model_class
  @model_class ||= klass.constantize
end

#perform!Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'app/models/workarea/api/admin/bulk_upsert.rb', line 22

def perform!
  update_attribute(:started_at, Time.now)

  data.each_with_index do |attrs, i|
    instance = find_updated_model_for(attrs)
    instance.save

    if instance.errors.present?
      data_errors[i.to_s] = instance.errors.as_json
    end
  end

  if data_errors.blank?
    destroy!
  else
    self.completed_at = Time.now
    save!(validate: false)
  end
end