sanger/sequencescape

View on GitHub
app/models/fluidigm_template_task.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
# frozen_string_literal: true
class FluidigmTemplateTask < PlateTemplateTask
  def partial
    'fluidigm_template_batches'
  end

  def plate_purpose_options(batch) # rubocop:todo Metrics/AbcSize
    next_requests = batch.requests.flat_map(&:next_requests)
    plate_purposes = next_requests.filter_map(&:request_type).uniq.map(&:acceptable_purposes).flatten.uniq

    # If downstream requests don't specify an acceptable_purpose, fallback to any target purposes
    # on the current requests
    plate_purposes = batch.requests.filter_map { |r| r.request_metadata.target_purpose }.uniq if plate_purposes.empty?
    plate_purposes.map { |p| [p.name, p.size, p.id] }.sort
  end
end