class Doorkeeper::OAuth::AuthorizationCodeRequest

def before_successful_response

def before_successful_response
  grant.transaction do
    grant.lock!
    raise Errors::InvalidGrantReuse if grant.revoked?
    grant.revoke
    find_or_create_access_token(grant.application,
                                grant.resource_owner_id,
                                grant.scopes,
                                server)
  end
end

def initialize(server, grant, client, parameters = {})

def initialize(server, grant, client, parameters = {})
  @server = server
  @client = client
  @grant  = grant
  @redirect_uri = parameters[:redirect_uri]
end

def validate_attributes

def validate_attributes
  redirect_uri.present?
end

def validate_client

def validate_client
  !!client
end

def validate_grant

def validate_grant
  return false unless grant && grant.application_id == client.id
  grant.accessible?
end

def validate_redirect_uri

def validate_redirect_uri
  grant.redirect_uri == redirect_uri
end