sanger/limber

View on GitHub
app/controllers/concerns/work_completion_behaviour.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
90%
# frozen_string_literal: true

# Module WorkCompletionBehaviour provides work completion
# endpoints for controllers
#
# @author Genome Research Ltd.
#
module WorkCompletionBehaviour
  extend ActiveSupport::Concern

  included { include SequencescapeSubmissionBehaviour }

  # Create a work completion for the given limber_plate_id
  # and redirect to the plate page.
  # Work completions mark library creation requests as completed
  # and hook them up to the correct wells.
  def create
    api.work_completion.create!(
      # Our pools keys are our submission uuids.
      submissions: labware.in_progress_submission_uuids,
      target: labware.uuid,
      user: current_user_uuid
    )

    # We assign the message in an array as create_submission may wish to add
    # its own feedback.
    flash[:notice] = ['Requests have been passed']

    create_submission if params[:sequencescape_submission]

    redirect_to labware
  end

  def sequencescape_submission_parameters
    params
      .require(:sequencescape_submission)
      .permit(:template_uuid, request_options: {}, assets: [])
      .merge(api: api, user: current_user_uuid)
  end
end