sanger/sequencescape

View on GitHub
app/models/extended_validator/species_validator.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
# frozen_string_literal: true
module ExtendedValidator::SpeciesValidator
  def validate_order(order)
    bad_samples = order.all_samples.select { |s| s.sample_metadata.sample_taxon_id != options[:taxon_id] }
    return true if bad_samples.empty?

    order.errors.add(
      :samples,
      "should have taxon_id #{options[:taxon_id]}: problems with #{bad_samples.map(&:sanger_sample_id).to_sentence}."
    )
    false
  end
end