Class: SampleAccessioningJob

Inherits:
Struct
  • Object
show all
Defined in:
app/jobs/sample_accessioning_job.rb

Overview

Sends sample data to the ENA or EGA in order to generate an accession number Records the generated accession number on the sample

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#accessionableObject

Returns the value of attribute accessionable

Returns:

  • (Object)

    the current value of accessionable



5
6
7
# File 'app/jobs/sample_accessioning_job.rb', line 5

def accessionable
  @accessionable
end

Instance Method Details

#max_attemptsObject



20
21
22
# File 'app/jobs/sample_accessioning_job.rb', line 20

def max_attempts
  3
end

#performObject



7
8
9
10
11
12
13
14
# File 'app/jobs/sample_accessioning_job.rb', line 7

def perform
  submission = Accession::Submission.new(User.find_by(api_key: configatron.accession_local_key), accessionable)
  submission.post

  # update_accession_number returns true if an accession has been supplied, and the sample has been saved.
  # If this returns false, then we fail the job. This should catch any failure situations
  submission.update_accession_number || raise(StandardError)
end

#queue_nameObject



24
25
26
# File 'app/jobs/sample_accessioning_job.rb', line 24

def queue_name
  'sample_accessioning'
end

#reschedule_at(current_time, _attempts) ⇒ Object



16
17
18
# File 'app/jobs/sample_accessioning_job.rb', line 16

def reschedule_at(current_time, _attempts)
  current_time + 1.day
end