Class: DriverFilesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/driver_files_controller.rb

Overview

Handles the generation for robot driver files, mostly in association with the CherrypickingPipeline A request to eg. batches/1/robots/3/driver_file Will generate a pick list for batch 1, using the generator specified for robot 3 The barcode parameter can be used to specify a specific target plate

Constant Summary

Constants included from FlashTruncation

FlashTruncation::STRING_OVERHEAD

Instance Method Summary collapse

Methods inherited from ApplicationController

#block_api_access, #evil_parameter_hack!, #extract_header_info, #set_cache_disabled!

Methods included from AuthenticatedSystem

included

Methods included from FlashTruncation

#max_flash_size, #truncate_flash, #truncate_flash_array

Instance Method Details

#showvoid

Note:

Following parameters are required:

  • batch_id: the id of the Batch (path parameter)
  • robot_id: the id of the Robot (path parameter)
  • barcode: the barcode of the target plate (query parameter)
  • pick_number: the pick number when multiple source plates are used (query parameter)
  • generator_id: the id of the RobotProperty to use (query parameter)

This method returns an undefined value.

Generates and sends the robot driver file.



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'app/controllers/driver_files_controller.rb', line 22

 do
  # NOTE: The following attribute is not required for Microarray Genotyping.
  # I think this might be broken and suggests that there should be separate classes for project: one for
  # next-gen sequencing that includes this attribute in it's metadata, and one for microarray genotyping
  # that doesn't.
  include ProjectManager::Associations
  include BudgetDivision::Associations

  custom_attribute(:project_cost_code, required: true)
  custom_attribute(:funding_comments)
  custom_attribute(:collaborators)
  custom_attribute(:external_funding_source)
  custom_attribute(:sequencing_budget_cost_centre)
  custom_attribute(:project_funding_model, in: PROJECT_FUNDING_MODELS)
  custom_attribute(:gt_committee_tracking_id)

  before_validation do |record|
    record.project_cost_code = nil if record.project_cost_code.blank?
    record.project_funding_model = nil if record.project_funding_model.blank?
  end
end