module Freee::Util

Public Class Methods

create_client(**kwarg) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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