Sha256: d22f1ea7b32f4674de50d7b223db463ff77b1e71980c497b8a599aad2af7f93a

Contents?: true

Size: 984 Bytes

Versions: 6

Compression:

Stored size: 984 Bytes

Contents

# frozen_string_literal: true

# ImportRunJob class
class ImportRunJob < ApplicationJob
  queue_as :priority

  def perform(import)
    data = CSV.parse(import.csv_file.download.force_encoding("UTF-8"), headers: true)

    data.each do |doc|
      extract_hash = doc.to_h

      converted_data = import.convert_data(extract_hash)

      kithe_document = {
        title: converted_data[GeoblacklightAdmin::Schema.instance.solr_fields[:title]],
        json_attributes: converted_data,
        friendlier_id: converted_data[GeoblacklightAdmin::Schema.instance.solr_fields[:id]],
        import_id: import.id
      }

      # Capture document for import attempt
      import_document = ImportDocument.create(kithe_document)

      # Add import document to background job queue
      ImportDocumentJob.perform_later(import_document)
    rescue => e
      logger.debug "\n\nCANNOT IMPORT: #{extract_hash.inspect}"
      logger.debug "Error: #{e.inspect}\n\n"
      next
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
geoblacklight_admin-0.5.0 app/jobs/import_run_job.rb
geoblacklight_admin-0.4.2 app/jobs/import_run_job.rb
geoblacklight_admin-0.4.1 app/jobs/import_run_job.rb
geoblacklight_admin-0.4.0 app/jobs/import_run_job.rb
geoblacklight_admin-0.3.2 app/jobs/import_run_job.rb
geoblacklight_admin-0.3.1 app/jobs/import_run_job.rb