class Kuvera::Api::Oauth

Constants

CLIENT_SCOPE
DEFAULT_CONTENT_TYPE
FATAL_ERROR_MESSAGE

Public Class Methods

new(uid:, secret:, host:) click to toggle source
# File lib/kuvera/api/oauth.rb, line 13
def initialize(uid:, secret:, host:)
  @oauth_client = OAuth2::Client.new(
    uid, secret, site: host, token_method: :post
  ) do |stack|
    stack.request :multipart
    stack.request :url_encoded
    stack.adapter Faraday.default_adapter
  end
end

Public Instance Methods

get(url, params = {}) click to toggle source
# File lib/kuvera/api/oauth.rb, line 23
def get(url, params = {})
  token.get(url, params: params).parsed
rescue OAuth2::Error => error
  process_exception(error)
end
post(url, body, headers: DEFAULT_CONTENT_TYPE.dup) click to toggle source
# File lib/kuvera/api/oauth.rb, line 29
def post(url, body, headers: DEFAULT_CONTENT_TYPE.dup)
  token.post(url, headers: headers, body: body).parsed
rescue OAuth2::Error => error
  process_exception(error)
end

Private Instance Methods

process_exception(exception) click to toggle source
# File lib/kuvera/api/oauth.rb, line 42
def process_exception(exception)
  exception.response.parsed || FATAL_ERROR_MESSAGE
end
token() click to toggle source
# File lib/kuvera/api/oauth.rb, line 37
def token
  @token ||=
    @oauth_client.client_credentials.get_token(scope: CLIENT_SCOPE)
end