class Twimock::API::Account::VerifyCredentials

Constants

AUTHORIZATION_REGEXP
METHOD
PATH

Public Instance Methods

call(env) click to toggle source
Calls superclass method
# File lib/twimock/api/account/verify_credentials.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)

    raise Twimock::Errors::InvalidConsumerKey.new if !validate_consumer_key(oauth.consumer_key)
    application = Twimock::Application.find_by_api_key(oauth.consumer_key)
    raise Twimock::Errors::InvalidAccessToken.new if !validate_access_token(oauth.token, application.id)
    access_token = Twimock::AccessToken.find_by_string(oauth.token)
    user = Twimock::User.find_by_id(access_token.user_id)
  rescue Twimock::Errors::InvalidAccessToken, Twimock::Errors::InvalidConsumerKey => @error
    return unauthorized
  rescue => @error
    return internal_server_error
  end

  status = '200 OK'
  body = user.info.to_json
  header = { "Content-Length" => body.bytesize.to_s }
  [ status, header, [ body ] ]
end