Module: Sequencescape::Api::Rails::ApplicationController

Defined in:
lib/sequencescape-api/rails.rb

Overview

Including this module into your Rails ApplicationController adds a before filter that will provide a Sequencescape::Api instance to use, accessible through ‘api`.

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object

rubocop:todo Metrics/MethodLength



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/sequencescape-api/rails.rb', line 5

def self.included(base) # rubocop:todo Metrics/MethodLength
  base.class_eval do
    attr_reader :api
    private :api

    if respond_to?(:before_action)
      before_action :configure_api
    else
      before_filter :configure_api
    end

    # Order is important here: later ones override earlier.
    rescue_from(::Sequencescape::Api::Error,                with: :sequencescape_api_error_handler)
    rescue_from(::Sequencescape::Api::UnauthenticatedError, with: :sequencescape_api_unauthenticated_handler)
  end
end