Sha256: 7f55ca5799e2fea3eca9996594b747588372bf8dc83d3dc9340f1fb194a4a2d8

Contents?: true

Size: 1.26 KB

Versions: 11

Compression:

Stored size: 1.26 KB

Contents

require 'doorkeeper/grape/authorization_decorator'

module Doorkeeper
  module Grape
    module Helpers
      extend ::Grape::API::Helpers
      include Doorkeeper::Rails::Helpers

      # endpoint specific scopes > parameter scopes > default scopes
      def doorkeeper_authorize!(*scopes)
        endpoint_scopes = env['api.endpoint'].options[:route_options][:scopes]
        scopes = if endpoint_scopes
                   Doorkeeper::OAuth::Scopes.from_array(endpoint_scopes)
                 elsif scopes && !scopes.empty?
                   Doorkeeper::OAuth::Scopes.from_array(scopes)
                 end

        super(*scopes)
      end

      def doorkeeper_render_error_with(error)
        status_code = case error.status
                      when :unauthorized
                        401
                      when :forbidden
                        403
                      end

        error!({ error: error.description }, status_code, error.headers)
      end

      private

      def doorkeeper_token
        @_doorkeeper_token ||= OAuth::Token.authenticate(
          decorated_request,
          *Doorkeeper.configuration.access_token_methods
        )
      end

      def decorated_request
        AuthorizationDecorator.new(request)
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
doorkeeper-4.2.0 lib/doorkeeper/grape/helpers.rb
doorkeeper-4.1.0 lib/doorkeeper/grape/helpers.rb
doorkeeper-4.0.0 lib/doorkeeper/grape/helpers.rb
doorkeeper-4.0.0.rc4 lib/doorkeeper/grape/helpers.rb
doorkeeper-4.0.0.rc3 lib/doorkeeper/grape/helpers.rb
doorkeeper-4.0.0.rc2 lib/doorkeeper/grape/helpers.rb
doorkeeper-4.0.0.rc1 lib/doorkeeper/grape/helpers.rb
doorkeeper-3.1.0 lib/doorkeeper/grape/helpers.rb
doorkeeper-3.0.1 lib/doorkeeper/grape/helpers.rb
doorkeeper-3.0.0 lib/doorkeeper/grape/helpers.rb
doorkeeper-3.0.0.rc2 lib/doorkeeper/grape/helpers.rb