class VenmoAPI::User

Attributes

access_token[RW]
data[RW]
expires_in[RW]
refresh_token[RW]
response_type[RW]
token_type[RW]
token_updated[RW]

Public Class Methods

new(obj, response_type) click to toggle source
# File lib/venmo/user.rb, line 8
def initialize(obj, response_type)
  self.access_token = obj[:access_token]
  self.response_type = response_type
  if response_type == 'code'
    self.expires_in = obj[:expires_in]
    self.refresh_token = obj[:refresh_token]
    self.token_type = obj[:bearer]
    self.token_updated = Time.now
    self.data = obj[:user]
  end
  VenmoAPI::Helper::recursive_symbolize_keys! self.data
  validate_properties response_type
end

Public Instance Methods

get_friends(options = {}) click to toggle source
# File lib/venmo/user.rb, line 38
def get_friends (options = {})
  if options[:id]
    url = VenmoAPI::Helper::VENMO_BASE_URL + 'users/' + options[:id] + '/friends?access_token=' + self.access_token
  else
    if self.data[:user][:id]
      url = VenmoAPI::Helper::VENMO_BASE_URL + 'users/' + self.data[:user][:id] + '/friends?access_token=' + self.access_token
    else
      raise "get_friends must be called with an id if there is no id present on the current user"
    end
  end
  url += options[:before] ? "&before=" + options[:before] : ''
  url += options[:after] ? "&after=" + options[:after] : ''
  url += options[:limit] ? "&limit=" + options[:limit] : ''
  res = Net::HTTP.get(URI(url))
  return JSON.parse(res)
end
get_info(update = true) click to toggle source
# File lib/venmo/user.rb, line 31
def get_info(update = true)
  if update
    update_info
  end
  return self.data
end
get_payment(id) click to toggle source
# File lib/venmo/user.rb, line 66
def get_payment (id)
  uri = URI(VenmoAPI::Helper::VENMO_BASE_URL + 'payments/' + id.to_s + '?access_token=' + self.access_token)
  res = Net::HTTP.get(uri)
  return JSON.parse(res)
end
get_recent_payments() click to toggle source
# File lib/venmo/user.rb, line 72
def get_recent_payments
  uri = URI(VenmoAPI::Helper::VENMO_BASE_URL + 'payments?access_token=' + self.access_token)
  res = Net::HTTP.get(uri)
  return JSON.parse(res)
end
get_user(id) click to toggle source
# File lib/venmo/user.rb, line 55
def get_user(id)
  uri = URI(VenmoAPI::Helper::VENMO_BASE_URL + 'users/' + id.to_s + '?access_token=' + self.access_token)
  res = Net::HTTP.get(uri)
  return JSON.parse(res)
end
make_payment(options = {}) click to toggle source
# File lib/venmo/user.rb, line 61
def make_payment (options = {})
  payment = Payment.new(options)
  return payment.send self.access_token
end
update_info() click to toggle source
# File lib/venmo/user.rb, line 22
def update_info
  uri = URI(VenmoAPI::Helper::VENMO_BASE_URL + 'me?access_token=' + self.access_token)
  res = Net::HTTP.get(uri)
  res_data = JSON.parse(res)
  if res_data["data"]
    self.data = VenmoAPI::Helper::recursive_symbolize_keys! res_data["data"]
  end
end

Private Instance Methods

validate_properties(response_type) click to toggle source
# File lib/venmo/user.rb, line 79
def validate_properties (response_type)
  if !self.access_token
    raise "Missing access token"
  elsif !self.expires_in && response_type == 'code'
    raise "Missing expires_in"
  elsif !self.refresh_token && response_type == 'code'
    raise "Missing refresh token"
  elsif !self.token_updated && response_type == 'code'
    raise "Missing token_updated"
  end
end