class RocketPaysRailsApi::Invoice

Attributes

cancel_url[RW]
currency[RW]

Set currency

customer_email[RW]

Set customer email

customer_name[RW]

Set customer name

delivery_fee[RW]

Set shipping

discounts[RW]

Set discounts

invoice_description[RW]
number[RW]

Set number

products[RW]

Set products

success_url[RW]

Public Class Methods

new(options = {}) click to toggle source
# File lib/rocket_pays_rails_api/invoice.rb, line 37
def initialize(options = {})
  @number = options[:number]
  @invoice_description = options[:invoice_description]
  @customer_name = options[:customer_name]
  @customer_email = options[:customer_email]
  @currency = options[:currency] || 'USD'
  @discounts = options[:discounts] || 0.0
  @delivery_fee = options[:delivery_fee] || 0.0
  @success_url = options[:success_url]
  @cancel_url = options[:cancel_url]
  @products = []
end

Public Instance Methods

add_product(product) click to toggle source
# File lib/rocket_pays_rails_api/invoice.rb, line 54
def add_product(product)
  @products.push product
end
to_json() click to toggle source
# File lib/rocket_pays_rails_api/invoice.rb, line 50
def to_json
  JSON.generate to_hash
end

Private Instance Methods

products_not_empty() click to toggle source
# File lib/rocket_pays_rails_api/invoice.rb, line 77
def products_not_empty
  return nil if @products.any?

  errors.add(:products, 'Products should not be empty')
end
to_hash() click to toggle source
# File lib/rocket_pays_rails_api/invoice.rb, line 60
def to_hash
  {
    invoice: {
      invoiceNumber: @number,
      invoiceDescription: @invoice_description,
      customerName: @customer_name,
      customerEmail: @customer_email,
      invoiceDiscounts: @discounts.to_s,
      invoiceCurrency: @currency,
      invoiceDeliveryFee: @delivery_fee.to_s,
      invoiceProducts: @products.map { |product| product.to_hash}
    },
    successUrl: @success_url,
    cancelUrl: @cancel_url
  }
end