class PromisePay::Fee

Attributes

amount[R]
cap[R]
fee_type_id[R]
id[R]
max[R]
min[R]
name[R]
to[R]

Public Class Methods

create(options = {}) click to toggle source
# File lib/promise_pay/fee.rb, line 17
def self.create(options = {})
  new(options).create
end
new(options = {}) click to toggle source
# File lib/promise_pay/fee.rb, line 21
def initialize(options = {})
  @name         = options.fetch(:name)
  @fee_type_id  = options.fetch(:fee_type_id)
  @amount       = options.fetch(:amount)
  @cap          = options.fetch(:cap)
  @min          = options.fetch(:min)
  @max          = options.fetch(:max)
  @to           = options.fetch(:to)

  assign_instance_variables({'fees' => options})
end

Public Instance Methods

create() click to toggle source
# File lib/promise_pay/fee.rb, line 33
def create
  assign_instance_variables(resource_result)
  self
end

Private Instance Methods

api_resource() click to toggle source
# File lib/promise_pay/fee.rb, line 51
def api_resource
  "fees"
end
payload() click to toggle source
# File lib/promise_pay/fee.rb, line 55
def payload
  {
    name:         name,
    fee_type_id:  fee_type_id,
    amount:       amount,
    cap:          cap,
    min:          min,
    max:          max,
    to:           to
  }
end
resource_result() click to toggle source
# File lib/promise_pay/fee.rb, line 40
def resource_result
  request = PromisePay::Request.new(
    path: api_resource,
    method: :post,
    payload: payload
  )

  response = request.execute
  JSON.parse(response)["fees"]
end