class ProcessOut::Payout

Attributes

adjustments[R]
amount[R]
bank_name[R]
bank_summary[R]
chargebacks_transactions[R]
chargebacks_volume[R]
created_at[R]
currency[R]
fees[R]
id[R]
metadata[R]
project[R]
project_id[R]
refunds_transactions[R]
refunds_volume[R]
reserve[R]
sales_transactions[R]
sales_volume[R]
settled_at[R]
status[R]

Public Class Methods

new(client, data = {}) click to toggle source

Initializes the Payout object Params:

client

ProcessOut client instance

data

data that can be used to fill the object

# File lib/processout/payout.rb, line 130
def initialize(client, data = {})
  @client = client

  self.id = data.fetch(:id, nil)
  self.project = data.fetch(:project, nil)
  self.project_id = data.fetch(:project_id, nil)
  self.status = data.fetch(:status, nil)
  self.amount = data.fetch(:amount, nil)
  self.currency = data.fetch(:currency, nil)
  self.metadata = data.fetch(:metadata, nil)
  self.bank_name = data.fetch(:bank_name, nil)
  self.bank_summary = data.fetch(:bank_summary, nil)
  self.sales_transactions = data.fetch(:sales_transactions, nil)
  self.sales_volume = data.fetch(:sales_volume, nil)
  self.refunds_transactions = data.fetch(:refunds_transactions, nil)
  self.refunds_volume = data.fetch(:refunds_volume, nil)
  self.chargebacks_transactions = data.fetch(:chargebacks_transactions, nil)
  self.chargebacks_volume = data.fetch(:chargebacks_volume, nil)
  self.fees = data.fetch(:fees, nil)
  self.adjustments = data.fetch(:adjustments, nil)
  self.reserve = data.fetch(:reserve, nil)
  self.settled_at = data.fetch(:settled_at, nil)
  self.created_at = data.fetch(:created_at, nil)
  
end

Public Instance Methods

adjustments=(val) click to toggle source
# File lib/processout/payout.rb, line 109
def adjustments=(val)
  @adjustments = val
end
all(options = {}) click to toggle source

Get all the payouts. Params:

options

Hash of options

# File lib/processout/payout.rb, line 322
def all(options = {})
  self.prefill(options)

  request = Request.new(@client)
  path    = "/payouts"
  data    = {

  }

  response = Response.new(request.get(path, data, options))
  return_values = Array.new
  
  a    = Array.new
  body = response.body
  for v in body['payouts']
    tmp = Payout.new(@client)
    tmp.fill_with_data(v)
    a.push(tmp)
  end

  return_values.push(a)
  

  
  return_values[0]
end
amount=(val) click to toggle source
# File lib/processout/payout.rb, line 61
def amount=(val)
  @amount = val
end
bank_name=(val) click to toggle source
# File lib/processout/payout.rb, line 73
def bank_name=(val)
  @bank_name = val
end
bank_summary=(val) click to toggle source
# File lib/processout/payout.rb, line 77
def bank_summary=(val)
  @bank_summary = val
end
chargebacks_transactions=(val) click to toggle source
# File lib/processout/payout.rb, line 97
def chargebacks_transactions=(val)
  @chargebacks_transactions = val
end
chargebacks_volume=(val) click to toggle source
# File lib/processout/payout.rb, line 101
def chargebacks_volume=(val)
  @chargebacks_volume = val
end
created_at=(val) click to toggle source
# File lib/processout/payout.rb, line 121
def created_at=(val)
  @created_at = val
end
currency=(val) click to toggle source
# File lib/processout/payout.rb, line 65
def currency=(val)
  @currency = val
end
fees=(val) click to toggle source
# File lib/processout/payout.rb, line 105
def fees=(val)
  @fees = val
end
fetch_items(options = {}) click to toggle source

Get all the items linked to the payout. Params:

options

Hash of options

# File lib/processout/payout.rb, line 292
def fetch_items(options = {})
  self.prefill(options)

  request = Request.new(@client)
  path    = "/payouts/" + CGI.escape(@id) + "/items"
  data    = {

  }

  response = Response.new(request.get(path, data, options))
  return_values = Array.new
  
  a    = Array.new
  body = response.body
  for v in body['items']
    tmp = PayoutItem.new(@client)
    tmp.fill_with_data(v)
    a.push(tmp)
  end

  return_values.push(a)
  

  
  return_values[0]
end
fill_with_data(data) click to toggle source

Fills the object with data coming from the API Params:

data

Hash of data coming from the API

# File lib/processout/payout.rb, line 190
def fill_with_data(data)
  if data.nil?
    return self
  end
  if data.include? "id"
    self.id = data["id"]
  end
  if data.include? "project"
    self.project = data["project"]
  end
  if data.include? "project_id"
    self.project_id = data["project_id"]
  end
  if data.include? "status"
    self.status = data["status"]
  end
  if data.include? "amount"
    self.amount = data["amount"]
  end
  if data.include? "currency"
    self.currency = data["currency"]
  end
  if data.include? "metadata"
    self.metadata = data["metadata"]
  end
  if data.include? "bank_name"
    self.bank_name = data["bank_name"]
  end
  if data.include? "bank_summary"
    self.bank_summary = data["bank_summary"]
  end
  if data.include? "sales_transactions"
    self.sales_transactions = data["sales_transactions"]
  end
  if data.include? "sales_volume"
    self.sales_volume = data["sales_volume"]
  end
  if data.include? "refunds_transactions"
    self.refunds_transactions = data["refunds_transactions"]
  end
  if data.include? "refunds_volume"
    self.refunds_volume = data["refunds_volume"]
  end
  if data.include? "chargebacks_transactions"
    self.chargebacks_transactions = data["chargebacks_transactions"]
  end
  if data.include? "chargebacks_volume"
    self.chargebacks_volume = data["chargebacks_volume"]
  end
  if data.include? "fees"
    self.fees = data["fees"]
  end
  if data.include? "adjustments"
    self.adjustments = data["adjustments"]
  end
  if data.include? "reserve"
    self.reserve = data["reserve"]
  end
  if data.include? "settled_at"
    self.settled_at = data["settled_at"]
  end
  if data.include? "created_at"
    self.created_at = data["created_at"]
  end
  
  self
end
find(payout_id, options = {}) click to toggle source

Find a payout by its ID. Params:

payout_id

ID of the payout

options

Hash of options

# File lib/processout/payout.rb, line 353
def find(payout_id, options = {})
  self.prefill(options)

  request = Request.new(@client)
  path    = "/payouts/" + CGI.escape(payout_id) + ""
  data    = {

  }

  response = Response.new(request.get(path, data, options))
  return_values = Array.new
  
  body = response.body
  body = body["payout"]
  
  
  obj = Payout.new(@client)
  return_values.push(obj.fill_with_data(body))
  

  
  return_values[0]
end
id=(val) click to toggle source
# File lib/processout/payout.rb, line 33
def id=(val)
  @id = val
end
metadata=(val) click to toggle source
# File lib/processout/payout.rb, line 69
def metadata=(val)
  @metadata = val
end
new(data = {}) click to toggle source

Create a new Payout using the current client

# File lib/processout/payout.rb, line 157
def new(data = {})
  Payout.new(@client, data)
end
prefill(data) click to toggle source

Prefills the object with the data passed as parameters Params:

data

Hash of data

# File lib/processout/payout.rb, line 261
def prefill(data)
  if data.nil?
    return self
  end
  self.id = data.fetch(:id, self.id)
  self.project = data.fetch(:project, self.project)
  self.project_id = data.fetch(:project_id, self.project_id)
  self.status = data.fetch(:status, self.status)
  self.amount = data.fetch(:amount, self.amount)
  self.currency = data.fetch(:currency, self.currency)
  self.metadata = data.fetch(:metadata, self.metadata)
  self.bank_name = data.fetch(:bank_name, self.bank_name)
  self.bank_summary = data.fetch(:bank_summary, self.bank_summary)
  self.sales_transactions = data.fetch(:sales_transactions, self.sales_transactions)
  self.sales_volume = data.fetch(:sales_volume, self.sales_volume)
  self.refunds_transactions = data.fetch(:refunds_transactions, self.refunds_transactions)
  self.refunds_volume = data.fetch(:refunds_volume, self.refunds_volume)
  self.chargebacks_transactions = data.fetch(:chargebacks_transactions, self.chargebacks_transactions)
  self.chargebacks_volume = data.fetch(:chargebacks_volume, self.chargebacks_volume)
  self.fees = data.fetch(:fees, self.fees)
  self.adjustments = data.fetch(:adjustments, self.adjustments)
  self.reserve = data.fetch(:reserve, self.reserve)
  self.settled_at = data.fetch(:settled_at, self.settled_at)
  self.created_at = data.fetch(:created_at, self.created_at)
  
  self
end
project=(val) click to toggle source
# File lib/processout/payout.rb, line 37
def project=(val)
  if val.nil?
    @project = val
    return
  end

  if val.instance_of? Project
    @project = val
  else
    obj = Project.new(@client)
    obj.fill_with_data(val)
    @project = obj
  end
  
end
project_id=(val) click to toggle source
# File lib/processout/payout.rb, line 53
def project_id=(val)
  @project_id = val
end
refunds_transactions=(val) click to toggle source
# File lib/processout/payout.rb, line 89
def refunds_transactions=(val)
  @refunds_transactions = val
end
refunds_volume=(val) click to toggle source
# File lib/processout/payout.rb, line 93
def refunds_volume=(val)
  @refunds_volume = val
end
reserve=(val) click to toggle source
# File lib/processout/payout.rb, line 113
def reserve=(val)
  @reserve = val
end
sales_transactions=(val) click to toggle source
# File lib/processout/payout.rb, line 81
def sales_transactions=(val)
  @sales_transactions = val
end
sales_volume=(val) click to toggle source
# File lib/processout/payout.rb, line 85
def sales_volume=(val)
  @sales_volume = val
end
settled_at=(val) click to toggle source
# File lib/processout/payout.rb, line 117
def settled_at=(val)
  @settled_at = val
end
status=(val) click to toggle source
# File lib/processout/payout.rb, line 57
def status=(val)
  @status = val
end
to_json(options) click to toggle source

Overrides the JSON marshaller to only send the fields we want

# File lib/processout/payout.rb, line 162
def to_json(options)
  {
      "id": self.id,
      "project": self.project,
      "project_id": self.project_id,
      "status": self.status,
      "amount": self.amount,
      "currency": self.currency,
      "metadata": self.metadata,
      "bank_name": self.bank_name,
      "bank_summary": self.bank_summary,
      "sales_transactions": self.sales_transactions,
      "sales_volume": self.sales_volume,
      "refunds_transactions": self.refunds_transactions,
      "refunds_volume": self.refunds_volume,
      "chargebacks_transactions": self.chargebacks_transactions,
      "chargebacks_volume": self.chargebacks_volume,
      "fees": self.fees,
      "adjustments": self.adjustments,
      "reserve": self.reserve,
      "settled_at": self.settled_at,
      "created_at": self.created_at,
  }.to_json
end