class VenmoAPI::Payment

Attributes

amount[RW]
audience[RW]
data[RW]
email[RW]
note[RW]
phone[RW]
sent[RW]
user_id[RW]

Public Class Methods

new(options = {}) click to toggle source
# File lib/venmo/payment.rb, line 4
def initialize(options = {})
  self.phone = options[:phone]
  self.email = options[:email]
  self.user_id = options[:user_id]
  self.note = options[:note]
  self.amount = options[:amount]
  self.audience = options[:audience] ? options[:audience] : 'friends'
  validate_properties
end

Public Instance Methods

send(access_token) click to toggle source
# File lib/venmo/payment.rb, line 14
def send (access_token)
  uri = URI(VenmoAPI::Helper::VENMO_BASE_URL + 'payments')
  res = Net::HTTP.post_form(uri, 'access_token' => access_token,
                                 'phone' => self.phone,
                                 'email' => self.email,
                                 'user_id' => self.user_id,
                                 'note' => self.note,
                                 'amount' => self.amount,
                                 'audience' => self.audience)
  res_data = JSON.parse(res.body)
  if res_data["data"]
    self.data = VenmoAPI::Helper::recursive_symbolize_keys! res_data["data"]
  end
  return self
end

Private Instance Methods

validate_properties() click to toggle source
# File lib/venmo/payment.rb, line 32
def validate_properties
  if !(self.user_id || self.phone || self.email)
    raise "make_payment requires a target. Please provide a user_id, phone, or email in options hash"
  elsif !self.note
    raise "make_payment requires a note in options hash"
  elsif !self.amount
    raise "make_payment requires an amount in options hash"
  end
end