module Doorkeeper::Request

def authorization_strategy(strategy)

def authorization_strategy(strategy)
  get_strategy strategy, Doorkeeper.configuration.authorization_response_types
rescue NameError
  raise Errors::InvalidAuthorizationStrategy
end

def get_strategy(strategy, available)

def get_strategy(strategy, available)
  fail Errors::MissingRequestStrategy unless strategy.present?
  fail NameError unless available.include?(strategy.to_s)
  "Doorkeeper::Request::#{strategy.to_s.camelize}".constantize
end

def token_strategy(strategy)

def token_strategy(strategy)
  get_strategy strategy, Doorkeeper.configuration.token_grant_types
rescue NameError
  raise Errors::InvalidTokenStrategy
end