Class: DwcaCreateDownloadJob

Inherits:
ApplicationJob show all
Defined in:
app/jobs/dwca_create_download_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(download, core_scope: nil, extension_scopes: {biological_associations: nil, media: nil}, predicate_extensions: {}, taxonworks_extensions: [], project_id: nil) ⇒ Object

take a download, and a list of scopes, and save the result to the download, that’s all

Parameters:

  • core_scope (String, ActiveRecord::Relation) (defaults to: nil)

    String of SQL generated from the scope SQL must return a list of DwcOccurrence records

Returns:

Raises:

  • (TaxonWorks::Error)


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

def perform(download, core_scope: nil, extension_scopes: {biological_associations: nil, media: nil}, predicate_extensions: {}, taxonworks_extensions: [],
project_id: nil)
  # Filter queries will fail in unexpected ways without project_id set as
  # expected!
  raise TaxonWorks::Error, "Project_id not set! #{core_scope}" if project_id.nil?
  Current.project_id = project_id

  begin
    begin
      d = ::Export::Dwca::Data.new(core_scope:, predicate_extensions:, extension_scopes:, taxonworks_extensions:)
      d.package_download(download)
      d
    ensure
      d.cleanup
    end
  rescue => ex
    ExceptionNotifier.notify_exception(ex, data: { download: download&.id&.to_s } ) # otu: otu&.id&.to_s,
    raise
  end
end