Class: CardConnect::Service::AuthorizationRequest

Inherits:
Object
  • Object
show all
Includes:
Utils
Defined in:
lib/cardconnect/services/authorization/authorization_request.rb

Constant Summary collapse

REQUIRED_FIELDS =
[:merchid, :account, :expiry, :amount, :currency].freeze
OPTIONAL_FIELDS =
[:accttype, :name, :address, :city, :region, :country, :phone,
:postal, :email, :ecomind, :cvv2, :orderid, :track, :bankaba,
:tokenize, :termid, :capture, :ssnl4, :license, :profile, :userfields,
:ponumber, :authcode, :invoiceid, :taxamnt].freeze
FIELDS =
REQUIRED_FIELDS + OPTIONAL_FIELDS

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Utils

#set_attributes, #symbolize_keys

Constructor Details

#initialize(attrs = {}) ⇒ Object

Initializes a new Authorization Request

Parameters:

  • attrs (Hash) (defaults to: {})


22
23
24
25
26
# File 'lib/cardconnect/services/authorization/authorization_request.rb', line 22

def initialize(attrs = {})
  @errors = []
  set_attributes(attrs, FIELDS)
  validate_required_fields
end

Instance Attribute Details

#errorsObject (readonly)

Returns the value of attribute errors.



16
17
18
# File 'lib/cardconnect/services/authorization/authorization_request.rb', line 16

def errors
  @errors
end

Instance Method Details

#payloadObject

Builds the request payload



34
35
36
37
38
39
40
# File 'lib/cardconnect/services/authorization/authorization_request.rb', line 34

def payload
  payload = {}
  FIELDS.each do |field|
    payload.merge!(field => send(field))
  end
  payload
end

#valid?Boolean

Indicates that the request is valid once it is built.

Returns:

  • (Boolean)


29
30
31
# File 'lib/cardconnect/services/authorization/authorization_request.rb', line 29

def valid?
  errors.empty?
end