class XingApi::Client
Constants
- OAUTH_ATTRIBUTES
Attributes
default_options[RW]
request_token_hash[RW]
Public Class Methods
configure() { |instance| ... }
click to toggle source
# File lib/xing_api/client.rb, line 12 def configure instance = new yield instance self.default_options = instance.send(:to_hash) end
new(options = {})
click to toggle source
# File lib/xing_api/client.rb, line 19 def initialize(options = {}) options = (self.class.default_options ||= {}).merge(options) OAUTH_ATTRIBUTES.each do |attribute| send "#{attribute}=", options[attribute] end end
Public Instance Methods
get_access_token(verifier, options = {})
click to toggle source
# File lib/xing_api/client.rb, line 46 def get_access_token(verifier, options = {}) ensure_attributes_are_set! %w(consumer_key consumer_secret) options = request_token_hash.merge(options) if request_token_hash access_token = rebuild_request_token(options).get_access_token(oauth_verifier: verifier) self.oauth_token = access_token.token self.oauth_token_secret = access_token.secret { access_token: access_token.token, access_token_secret: access_token.secret } end
get_request_token(oauth_callback = 'oob')
click to toggle source
# File lib/xing_api/client.rb, line 35 def get_request_token(oauth_callback = 'oob') ensure_attributes_are_set! %w(consumer_key consumer_secret) request_token = request_token(oauth_callback) self.request_token_hash = { request_token: request_token.token, request_token_secret: request_token.secret, authorize_url: request_token.authorize_url } end
request(http_verb, url, options = {})
click to toggle source
# File lib/xing_api/client.rb, line 26 def request(http_verb, url, options = {}) full_url = url + hash_to_params(options) handle(access_token.request(http_verb, full_url)) end
request_with_body(http_verb, url, body_hash = {})
click to toggle source
# File lib/xing_api/client.rb, line 31 def request_with_body(http_verb, url, body_hash = {}) handle(access_token.request(http_verb, url, body_hash.to_json, 'Content-Type' => 'application/json')) end
Private Instance Methods
access_token()
click to toggle source
# File lib/xing_api/client.rb, line 90 def access_token OAuth::AccessToken.new(consumer, oauth_token, oauth_token_secret) end
consumer()
click to toggle source
# File lib/xing_api/client.rb, line 86 def consumer OAuth::Consumer.new(consumer_key, consumer_secret, xing_oauth_options) end
ensure_attributes_are_set!(attribute_names)
click to toggle source
# File lib/xing_api/client.rb, line 111 def ensure_attributes_are_set!(attribute_names) Array(attribute_names).each do |attribute_name| raise "#{attribute_name} is missing" unless send(attribute_name) end end
hash_to_params(hash)
click to toggle source
# File lib/xing_api/client.rb, line 106 def hash_to_params(hash) return '' if hash.empty? '?' + hash.map { |k, v| "#{k}=#{CGI.escape(v.to_s)}" }.join('&') end
rebuild_request_token(options)
click to toggle source
# File lib/xing_api/client.rb, line 67 def rebuild_request_token(options) request_token = options[:request_token] || raise('request_token missing') request_token_secret = options[:request_token_secret] || raise('request_token_secret missing') OAuth::RequestToken.new(consumer, request_token, request_token_secret) end
request_token(oauth_callback)
click to toggle source
# File lib/xing_api/client.rb, line 82 def request_token(oauth_callback) @request_token ||= consumer.get_request_token(oauth_callback: oauth_callback) end
to_hash()
click to toggle source
# File lib/xing_api/client.rb, line 73 def to_hash { consumer_key: consumer_key, consumer_secret: consumer_secret, oauth_token: oauth_token, oauth_token_secret: oauth_token_secret } end
xing_oauth_options()
click to toggle source
# File lib/xing_api/client.rb, line 94 def xing_oauth_options { site: ENV['XING_API_SITE'] || 'https://api.xing.com', request_token_path: '/v1/request_token', authorize_path: '/v1/authorize', access_token_path: '/v1/access_token', signature_method: 'PLAINTEXT', oauth_version: '1.0', scheme: 'query_string' } end