Module: Freee::Util

Extended by:
Util
Included in:
Util
Defined in:
lib/freee/util.rb

Constant Summary collapse

@@client =
nil

Class Method Summary collapse

Class Method Details

.create_client(**kwarg) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/freee/util.rb', line 21

def self.create_client(**kwarg)
  @@client = OAuth2::Client.new(kwarg[:client_id], kwarg[:secret_key], OPTIONS) do |con|
    con.request :url_encoded
    con.request :json
    con.response :json, content_type: /\bjson$/
    con.adapter Faraday.default_adapter
  end
end

.create_params(**kwarg) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/freee/util.rb', line 6

def self.create_params(**kwarg)
  {
    grant_type: 'authorization_code',
    code: kwarg[:authorization_code],
    redirect_uri: kwarg[:redirect_uri],
    headers: {
      'Content-Type' => 'application/json',
      'Authorization' => HTTPAuth::Basic.pack_authorization(
        kwarg[:client_id],
        kwarg[:secret_key]
      )
    }
  }
end

.create_token(**kwarg) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/freee/util.rb', line 30

def self.create_token(**kwarg)
  self.create_client(kwarg) if @@client.nil?
  get_token = @@client.get_token(create_params(kwarg))
  {
    token: get_token.token,
    refresh_token: get_token.refresh_token
  }
end

.refresh_token(**kwarg) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
# File 'lib/freee/util.rb', line 39

def self.refresh_token(**kwarg)
  self.create_client(kwarg) if @@client.nil?
  get_token = OAuth2::AccessToken.from_hash(
    @@client,
    refresh_token: kwarg[:refresh_token]
  ).refresh!
  {
    token: get_token.token,
    refresh_token: get_token.refresh_token
  }
end