class StarkBank::PaymentPreview

# PaymentPreview object

A PaymentPreview is used to get information from a payment code before confirming the payment. This resource can be used to preview BR Codes and bar codes of boleto, tax and utility payments

## Attributes (return-only):

Attributes

id[R]
payment[R]
scheduled[R]
type[R]

Public Class Methods

create(previews, user: nil) click to toggle source

# Create PaymentPreviews

Send a list of PaymentPreviews objects for processing in the Stark Bank API

## Parameters (required):

  • previews [list of PaymentPreviews objects]: list of PaymentPreviews objects to be created in the API

## Parameters (optional):

## Return:

  • list of PaymentPreviews objects with updated attributes

# File lib/payment_preview/payment_preview.rb, line 49
def self.create(previews, user: nil)
  StarkBank::Utils::Rest.post(entities: previews, user: user, **resource)
end
new(id: nil, scheduled: nil, type: nil, payment: nil) click to toggle source
Calls superclass method StarkBank::Utils::Resource::new
# File lib/payment_preview/payment_preview.rb, line 20
def initialize(id: nil, scheduled: nil, type: nil, payment: nil)
  super(id)
  @scheduled = StarkBank::Utils::Checks.check_date(scheduled)
  @type = type
  @payment = payment
  return if type.nil?

  resource = {
    'brcode-payment': StarkBank::PaymentPreview::BrcodePreview.resource,
    'boleto-payment': StarkBank::PaymentPreview::BoletoPreview.resource,
    'tax-payment': StarkBank::PaymentPreview::TaxPreview.resource,
    'utility-payment': StarkBank::PaymentPreview::UtilityPreview.resource
  }[type.to_sym]

  @payment = StarkBank::Utils::API.from_api_json(resource[:resource_maker], payment) unless resource.nil?
end
resource() click to toggle source
# File lib/payment_preview/payment_preview.rb, line 53
def self.resource
  {
    resource_name: 'PaymentPreview',
    resource_maker: proc { |json|
      PaymentPreview.new(
        id: json['id'],
        scheduled: json['scheduled'],
        type: json['type'],
        payment: json['payment']
      )
    }
  }
end