Class: MisocaRubyClient::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/misoca_ruby_client/client.rb

Constant Summary collapse

MISOCA_END_POINT =
'https://app.misoca.jp/api/v1/'
MISOCA_AUTHORIZE_URI =
'https://app.misoca.jp/oauth2/authorize'
MISOCA_TOKEN_URI =
'https://app.misoca.jp/oauth2/token'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(application_id, secret, callback_url, config_block = nil) ⇒ Client

Returns a new instance of Client.



10
11
12
13
14
15
16
17
# File 'lib/misoca_ruby_client/client.rb', line 10

def initialize(application_id, secret, callback_url, config_block = nil)
  @application_id = application_id
  @secret = secret
  @client = OAuth2::Client.new(@application_id, @secret, site: MISOCA_END_POINT, authorize_url: MISOCA_AUTHORIZE_URI, token_url: MISOCA_TOKEN_URI)
  @callback_url = callback_url
  @config_block = config_block
  @access_token = nil
end

Instance Attribute Details

#access_tokenObject (readonly)

Returns the value of attribute access_token.



8
9
10
# File 'lib/misoca_ruby_client/client.rb', line 8

def access_token
  @access_token
end

Instance Method Details

#exchange_token(code) ⇒ Object



23
24
25
26
# File 'lib/misoca_ruby_client/client.rb', line 23

def exchange_token(code)
  @access_token = @client.auth_code.get_token(code, :redirect_uri => @callback_url)
  @config_block.call(@access_token) if @config_block
end

#get_authorize_urlObject



19
20
21
# File 'lib/misoca_ruby_client/client.rb', line 19

def get_authorize_url
  return @client.auth_code.authorize_url(:redirect_uri => @callback_url, scope: 'write')
end

#inject_access_token(access_token, refresh_token) ⇒ Object



33
34
35
# File 'lib/misoca_ruby_client/client.rb', line 33

def inject_access_token(access_token, refresh_token)
  @access_token = OAuth2::AccessToken.new(@client, access_token, refresh_token: refresh_token)
end

#refresh_access_tokenObject



28
29
30
31
# File 'lib/misoca_ruby_client/client.rb', line 28

def refresh_access_token
  @access_token = @access_token.refresh!
  @config_block.call(@access_token) if @config_block
end