Sha256: ac5cf02648e3af620b925984aeaa2d9362d6604a604c5d31dce5e0c329de798f

Contents?: true

Size: 960 Bytes

Versions: 7

Compression:

Stored size: 960 Bytes

Contents

# frozen_string_literal: true

# ImportRunJob class
class ImportRunJob < ApplicationJob
  queue_as :priority

  def perform(import)
    data = CSV.parse(import.csv_file.download, 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

7 entries across 7 versions & 1 rubygems

Version Path
geoblacklight_admin-0.7.1 app/jobs/import_run_job.rb
geoblacklight_admin-0.7.0 app/jobs/import_run_job.rb
geoblacklight_admin-0.6.3 app/jobs/import_run_job.rb
geoblacklight_admin-0.6.2 app/jobs/import_run_job.rb
geoblacklight_admin-0.6.1 app/jobs/import_run_job.rb
geoblacklight_admin-0.6.0 app/jobs/import_run_job.rb
geoblacklight_admin-0.5.1 app/jobs/import_run_job.rb