Class: Decidim::Verifications::CsvCensus::ProcessCensusDataJob

Inherits:
ApplicationJob show all
Defined in:
decidim-verifications/app/jobs/decidim/verifications/csv_census/process_census_data_job.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#failedObject (readonly)

Returns the value of attribute failed.



8
9
10
# File 'decidim-verifications/app/jobs/decidim/verifications/csv_census/process_census_data_job.rb', line 8

def failed
  @failed
end

#imported_recordsObject (readonly)

Returns the value of attribute imported_records.



8
9
10
# File 'decidim-verifications/app/jobs/decidim/verifications/csv_census/process_census_data_job.rb', line 8

def imported_records
  @imported_records
end

#userObject (readonly)

Returns the value of attribute user.



8
9
10
# File 'decidim-verifications/app/jobs/decidim/verifications/csv_census/process_census_data_job.rb', line 8

def user
  @user
end

Instance Method Details

#perform(data, user) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'decidim-verifications/app/jobs/decidim/verifications/csv_census/process_census_data_job.rb', line 10

def perform(data, user)
  @user = user
  @imported_records = []
  @failed = []

  data.each do |email|
    record = CsvDatum.find_or_create_by(email:, organization: user.organization)
    if record && record.valid?
      @imported_records << record
    else
      @failed << email
      Rails.logger.warn(I18n.t("census.new_import.errors.email_exists", scope: "decidim.verifications.csv_census.admin", email:, organization: user.organization.id))
    end

    record.authorize!
  end

  log_import_action
end