class Drillbit::Requests::Base

Constants

BASE64_PATTERN
BASE64_TOKEN_HEADER_PATTERN
BASE64_TOKEN_PARAM_NAME
JSON_WEB_TOKEN_HEADER_PATTERN
JSON_WEB_TOKEN_PARAM_NAME
JSON_WEB_TOKEN_PATTERN

Attributes

request[RW]
token_private_key[RW]

Public Class Methods

new(token_private_key: Drillbit.configuration.token_private_key, request:) click to toggle source
# File lib/drillbit/requests/base.rb, line 19
def initialize(token_private_key: Drillbit.configuration.token_private_key,
               request:)

  self.token_private_key = token_private_key
  self.request           = request
end
rack_request_class() click to toggle source
# File lib/drillbit/requests/base.rb, line 77
def self.rack_request_class
  require 'drillbit/requests/rack'

  Object.const_get('Drillbit::Requests::Rack')
end
rails_request_class() click to toggle source
# File lib/drillbit/requests/base.rb, line 71
def self.rails_request_class
  require 'drillbit/requests/rails'

  Object.const_get('Drillbit::Requests::Rails')
end
resolve(original_request) click to toggle source
# File lib/drillbit/requests/base.rb, line 61
def self.resolve(original_request)
  if original_request.is_a? self
    original_request
  elsif original_request.respond_to? :headers
    rails_request_class.new(request: original_request)
  else
    rack_request_class.new(request: original_request)
  end
end

Public Instance Methods

accept_header() click to toggle source
# File lib/drillbit/requests/base.rb, line 26
def accept_header
  if accept_header_from_header.valid? ||
     accept_header_from_params.invalid?

    accept_header_from_header
  else
    accept_header_from_params
  end
end
application_name() click to toggle source
# File lib/drillbit/requests/base.rb, line 53
def application_name
  raw_request_application_name || Drillbit.configuration.application_name
end
authorization_token() click to toggle source
# File lib/drillbit/requests/base.rb, line 36
def authorization_token
  if (
       !authorization_token_from_header.blank? &&
       authorization_token_from_header.valid?
     ) \
     ||
     (
       authorization_token_from_params.blank? ||
       !authorization_token_from_params.valid?
     )

    authorization_token_from_header
  else
    authorization_token_from_params
  end
end
subdomain() click to toggle source
# File lib/drillbit/requests/base.rb, line 57
def subdomain
  @subdomain ||= raw_host[/\A([a-z\-]+)/i, 1]
end

Private Instance Methods

accept_header_from_header() click to toggle source
# File lib/drillbit/requests/base.rb, line 85
def accept_header_from_header
  AcceptHeader.new(application: application_name,
                   header:      raw_accept_header_from_header || '')
end
accept_header_from_params() click to toggle source
# File lib/drillbit/requests/base.rb, line 90
def accept_header_from_params
  AcceptHeader.new(application: application_name,
                   header:      raw_accept_header_from_params || '')
end
authorization_token_from_header() click to toggle source
# File lib/drillbit/requests/base.rb, line 95
def authorization_token_from_header
  case raw_authorization_header
  when JSON_WEB_TOKEN_HEADER_PATTERN
    Tokens::JsonWebToken.__send__(
      "from_#{Drillbit.configuration.token_type.downcase}",
      raw_authorization_header[JSON_WEB_TOKEN_HEADER_PATTERN, 1],
      private_key: token_private_key,
    )
  when BASE64_TOKEN_HEADER_PATTERN
    Tokens::Base64.convert(
      raw_token: raw_authorization_header[BASE64_TOKEN_HEADER_PATTERN, 1],
    )
  else
    Tokens::Null.instance
  end
end
raw_host() click to toggle source
# File lib/drillbit/requests/base.rb, line 112
def raw_host
  request.fetch('HTTP_HOST', '')
end