Class: XingApi::Client

Inherits:
Object
  • Object
show all
Includes:
ResponseHandler
Defined in:
lib/xing_api/client.rb

Constant Summary collapse

OAUTH_ATTRIBUTES =
[:consumer_key, :consumer_secret, :oauth_token, :oauth_token_secret].freeze

Constants included from ResponseHandler

ResponseHandler::OAUTH_ERROR_RESPONSES

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from ResponseHandler

#handle

Constructor Details

#initialize(options = {}) ⇒ Client

class << self



19
20
21
22
23
24
# 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

Class Attribute Details

.default_optionsObject

Returns the value of attribute default_options.



10
11
12
# File 'lib/xing_api/client.rb', line 10

def default_options
  @default_options
end

Instance Attribute Details

#request_token_hashObject

Returns the value of attribute request_token_hash.



7
8
9
# File 'lib/xing_api/client.rb', line 7

def request_token_hash
  @request_token_hash
end

Class Method Details

.configure {|instance| ... } ⇒ Object

Yields:

  • (instance)


12
13
14
15
16
# File 'lib/xing_api/client.rb', line 12

def configure
  instance = new
  yield instance
  self.default_options = instance.send(:to_hash)
end

Instance Method Details

#get_access_token(verifier, options = {}) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
# 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') ⇒ Object



35
36
37
38
39
40
41
42
43
44
# 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 = {}) ⇒ Object



26
27
28
29
# 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 = {}) ⇒ Object



31
32
33
# 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