class Twimock::API::OAuth::RequestToken

Constants

AUTHORIZATION_REGEXP
METHOD
PATH

Public Instance Methods

call(env) click to toggle source
Calls superclass method Twimock::API::OAuth#call
# File lib/twimock/api/oauth/request_token.rb, line 14
def call(env)
  return super unless called?(env)
  begin
    authorization_header = env["authorization"] || env["HTTP_AUTHORIZATION"]
    oauth = parse_authorization_header(authorization_header)
    consumer_key = oauth.consumer_key

    raise Twimock::Errors::InvalidConsumerKey.new if !validate_consumer_key(consumer_key)
    application = Twimock::Application.find_by_api_key(consumer_key)
  rescue Twimock::Errors::InvalidConsumerKey => @error
    return unauthorized
  rescue => @error
    return internal_server_error
  end

  request_token = create_request_token(application.id)
  status = "200 OK"
  params = { oauth_token:              request_token.string,
             oauth_token_secret:       request_token.secret,
             oauth_callback_confirmed: true }
  body   = params.inject([]){|a, (k, v)| a << "#{k}=#{v}"}.join('&')
  header = { "Content-Length" => body.bytesize.to_s }
  [ status, header, [ body ] ]
end

Private Instance Methods

create_request_token(application_id) click to toggle source
# File lib/twimock/api/oauth/request_token.rb, line 41
def create_request_token(application_id)
  request_token = Twimock::RequestToken.new(application_id: application_id)
  request_token.save!
  request_token
end