class Safie::AccessToken

Public Class Methods

new(access_token, attributes = {}) click to toggle source
Calls superclass method
# File lib/safie/access_token.rb, line 5
def initialize(access_token, attributes = {})
  super attributes.merge(access_token: access_token)
  @token_type = :bearer
end

Public Instance Methods

token_info!(params = {}) click to toggle source
# File lib/safie/access_token.rb, line 10
def token_info!(params = {})
  resource_request do
    get ENDPOINTS[:token_info], params
  end
end
user_info!(params = {}) click to toggle source
# File lib/safie/access_token.rb, line 16
def user_info!(params = {})
  token_info = token_info! params
  {
    sub: token_info[:user_id],
    email: token_info[:mail_address]
  }
end

Private Instance Methods

resource_request() { || ... } click to toggle source
# File lib/safie/access_token.rb, line 26
def resource_request
  res = yield
  case res.status
  when 200
    JSON.parse(res.body).with_indifferent_access
  when 400
    raise BadRequest.new('API Access Faild', res)
  when 401
    raise Unauthorized.new('Access Token Invalid or Expired', res)
  when 403
    raise Forbidden.new('Insufficient Scope', res)
  else
    raise HttpError.new(res.status, 'Unknown HttpError', res)
  end
end