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
# File 'app/controllers/driver_files_controller.rb', line 22

def show
  @plate_barcode = @batch.plate_barcode(params[:barcode])
  generator = @robot.generator(batch: @batch, plate_barcode: @plate_barcode, pick_number: pick_number,
                               generator_id: generator_id)
  base_filename = "#{@batch.id}_batch_#{@plate_barcode}_#{pick_number}"
  send_data generator.as_text,
            type: generator.type,
            filename: generator.filename(base_filename),
            disposition: 'attachment'
end