Module: Accession

Defined in:
lib/accession.rb,
lib/accession/tag.rb,
lib/accession/sample.rb,
lib/accession/service.rb,
lib/accession/tag_list.rb,
lib/accession/submission.rb,
lib/accession/accessionable.rb,
lib/accession/configuration.rb,
lib/accession/core_extensions.rb

Defined Under Namespace

Modules: Accessionable, CoreExtensions, Equality, Helpers Classes: Configuration, Error, ExternalNumberConflictError, ExternalValidationError, InternalValidationError, InvalidFieldsError, Sample, SampleAccessioning, SampleStatus, Service, Submission, Tag, TagCollectionDate, TagCountryOfOrigin, TagList

Constant Summary collapse

CENTER_NAME =
'SC'
XML_NAMESPACE =
{ 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance' }.freeze

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configuration ⇒ Object



96
97
98
# File 'lib/accession.rb', line 96

def self.configuration
  @configuration ||= Configuration.new
end

Class Method Details

.accession_sample(sample, event_user, perform_now: false) ⇒ Object



190
191
192
# File 'lib/accession.rb', line 190

def self.accession_sample(sample, event_user, perform_now: false)
  SampleAccessioning.new.perform(sample, event_user, perform_now)
end

.build_accessionable(sample) ⇒ Object



108
109
110
111
# File 'lib/accession.rb', line 108

def self.build_accessionable(sample)
  tags = Accession.configuration.tags
  Accession::Sample.new(tags, sample)
end

.configure {|configuration| ... } ⇒ Object

Yields:



100
101
102
# File 'lib/accession.rb', line 100

def self.configure
  yield(configuration)
end

.reset! ⇒ Object



104
105
106
# File 'lib/accession.rb', line 104

def self.reset!
  @configuration = Configuration.new
end

.table_name_prefix ⇒ Object

See app/models/accession.rb



88
89
90
# File 'lib/accession.rb', line 88

def self.table_name_prefix
  'accession_'
end

.user_error_message(error) ⇒ Object

Returns a user-friendly error message based on the error type



114
115
116
117
118
119
120
121
122
123
# File 'lib/accession.rb', line 114

def self.user_error_message(error)
  case error
  when Accession::ExternalValidationError, Accession::InternalValidationError
    error.message
  when Faraday::Error
    'A network error occurred during accessioning and no response was received.'
  else
    'An internal error occurred during accessioning.'
  end
end