class RightSignature::OauthConnection

Attributes

consumer_key[R]
consumer_secret[R]
oauth_access_secret[R]
oauth_access_token[R]
request_token[R]

Public Class Methods

new(credentials={}) click to toggle source

Creates new instance of RightSignature::OauthConnection to make API calls

  • creds: Hash of credentials for OAuth.

    • Hash keys for OAuth:

      • :consumer_key

      • :consumer_secret

      • :access_token

      • :access_secret

Example:

@rs_oauth = RightSignature::OauthConnection.new(:consumer_key => "ckey", :consumer_secret => "csecret", :access_token => "atoken", :access_secret => "asecret")
# File lib/rightsignature/connection/oauth_connection.rb, line 17
def initialize(credentials={})
  @consumer_key = credentials[:consumer_key]
  @consumer_secret = credentials[:consumer_secret]
  @oauth_access_token = credentials[:access_token]
  @oauth_access_secret = credentials[:access_secret]
end

Public Instance Methods

access_token() click to toggle source

Access token

# File lib/rightsignature/connection/oauth_connection.rb, line 42
def access_token
  check_credentials
  @access_token ||= OAuth::AccessToken.new(oauth_consumer,  @oauth_access_token,  @oauth_access_secret)
end
generate_access_token(oauth_verifier) click to toggle source

Uses request token and given OAuth verifier to generate an access token. Requires a request token to be set.

  • oauth_verifier: OAuth verifier

# File lib/rightsignature/connection/oauth_connection.rb, line 74
def generate_access_token(oauth_verifier)
  raise "Please set request token with new_request_token" unless @request_token
  @access_token = @request_token.get_access_token(:oauth_verifier =>  oauth_verifier)
  @oauth_access_token = @access_token.token
  @oauth_access_secret = @access_token.secret
  @access_token
end
new_request_token(o = {}) click to toggle source

Uses consumer to generate a request token.

  • o: options hash. Use this to set the :oauth_callback

# File lib/rightsignature/connection/oauth_connection.rb, line 59
def new_request_token(o = {})
  @request_token = oauth_consumer.get_request_token(o)
end
oauth_consumer() click to toggle source

Oauth consumer

# File lib/rightsignature/connection/oauth_connection.rb, line 25
def oauth_consumer
  check_credentials unless @consumer_key && @consumer_secret
  @oauth_consumer ||= OAuth::Consumer.new(
    @consumer_key,
    @consumer_secret,
    {
     :site              => "https://rightsignature.com",
     :scheme            => :header,
     :http_method        => :post,
     :authorize_path    =>'/oauth/authorize', 
     :access_token_path =>'/oauth/access_token', 
     :request_token_path=>'/oauth/request_token'
    }
  )
end
request(method, *options) click to toggle source

Generates HTTP request with oauth credentials. Require access_token to be set.

  • method: HTTP Method. Ex. (‘get’/‘post’/‘delete’/‘put’)

  • options: OAuth::AccessToken options to pass. Last option should be headers

# File lib/rightsignature/connection/oauth_connection.rb, line 86
def request(method, *options)
  options.last ||= {}
  options.last["Accept"] ||= "*/*"
  options.last["content-type"] ||= "application/xml"

  self.access_token.__send__(method, *options)
end
set_access_token(access_token, access_secret) click to toggle source

Replaces access token

  • access_token: access token key

  • access_secret: access token secret

# File lib/rightsignature/connection/oauth_connection.rb, line 51
def set_access_token(access_token, access_secret)
  @oauth_access_token = access_token
  @oauth_access_secret = access_secret
  @access_token = OAuth::AccessToken.new(oauth_consumer, @oauth_access_token, @oauth_access_secret)
end
set_request_token(request_token, request_token_secret) click to toggle source

Sets request token.

  • request_token: request token key

  • request_token_secret: request token secret

# File lib/rightsignature/connection/oauth_connection.rb, line 67
def set_request_token(request_token, request_token_secret)
  @request_token = OAuth::RequestToken.new(oauth_consumer, request_token, request_token_secret)
end

Private Instance Methods

check_credentials() click to toggle source

Raises exception if OAuth credentials are not set.

# File lib/rightsignature/connection/oauth_connection.rb, line 96
def check_credentials
  raise "Please set #{RightSignature::Connection.oauth_keys.join(', ')}" unless has_oauth_credentials?
end
has_oauth_credentials?() click to toggle source

Checks if OAuth credentials are set.

# File lib/rightsignature/connection/oauth_connection.rb, line 101
def has_oauth_credentials?
  [@consumer_key, @consumer_secret, @oauth_access_token, @oauth_access_secret].each do |cred| 
    return false if cred.nil? || cred.match(/^\s*$/)
  end

  true
end