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

Constant Summary collapse

JobFailed =
Class.new(StandardError)

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


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

def accessionable
  @accessionable
end

Instance Method Details

#max_attemptsObject


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

def max_attempts
  3
end

#performObject


7
8
9
10
11
12
13
# 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(JobFailed)
end

#queue_nameObject


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

def queue_name
  'sample_accessioning'
end

#reschedule_at(current_time, _attempts) ⇒ Object


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

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