Sha256: a7c917e86b5c4aacc945263581d6ca3d4d3ff05dac646030953c5d4040634ace

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

module Rack
  module OAuth2
    module Server

      class Error < StandardError
        attr_accessor :code, :error, :description, :uri, :state

        def initialize(code, error, description, options = {})
          @code = code
          @error = error
          @description = description
          @uri = options[:uri]
          @state = options[:state]
        end

        def finish
          [code, {'Content-Type' => 'application/json'}, response.to_json]
        end

        def response
          response = {:error => error}
          response[:error_description] = description if description
          response[:error_uri] = uri if uri
          response[:state] = state if state
          response
        end
      end

      class Unauthorized < Error
        def initialize(error, description, options = {})
          super(401, error, description, options)
        end
      end

      class BadRequest < Error
        def initialize(error, description, options = {})
          super(400, error, description, options)
        end
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rack-oauth2-0.0.0 lib/rack/oauth2/server/error.rb