class WirecardSepa::DirectDebit::Response

Attributes

request[R]
xml[R]

Public Class Methods

for_request(request) click to toggle source
# File lib/wirecard_sepa/direct_debit/response.rb, line 6
def self.for_request(request)
  new(request.body, request: request)
end
new(xml, request: nil) click to toggle source
# File lib/wirecard_sepa/direct_debit/response.rb, line 10
def initialize(xml, request: nil)
  @xml = xml
  @request = request
end

Public Instance Methods

due_date() click to toggle source
# File lib/wirecard_sepa/direct_debit/response.rb, line 49
def due_date
  value_at 'due-date'
end
params() click to toggle source
# File lib/wirecard_sepa/direct_debit/response.rb, line 15
def params
  {
    success:               success?,
    transaction_id:        transaction_id,
    transaction_state:     transaction_state,
    status_code:           status_code,
    status_description:    status_description,
    due_date:              due_date,
    reference_id:          provider_transaction_reference_id,
    original_response_xml: xml,
    requested_amount:      requested_amount
  }
end
provider_transaction_reference_id() click to toggle source
# File lib/wirecard_sepa/direct_debit/response.rb, line 57
def provider_transaction_reference_id
  value_at 'provider-transaction-reference-id'
end
requested_amount() click to toggle source
# File lib/wirecard_sepa/direct_debit/response.rb, line 53
def requested_amount
  value_at 'requested-amount'
end
status_code() click to toggle source
# File lib/wirecard_sepa/direct_debit/response.rb, line 41
def status_code
  value_at 'status', attribute: :code
end
status_description() click to toggle source
# File lib/wirecard_sepa/direct_debit/response.rb, line 45
def status_description
  value_at 'status', attribute: :description
end
success?() click to toggle source
# File lib/wirecard_sepa/direct_debit/response.rb, line 29
def success?
  transaction_state == 'success'
end
to_s() click to toggle source
# File lib/wirecard_sepa/direct_debit/response.rb, line 61
def to_s
  xml
end
transaction_id() click to toggle source
# File lib/wirecard_sepa/direct_debit/response.rb, line 33
def transaction_id
  value_at 'transaction-id'
end
transaction_state() click to toggle source
# File lib/wirecard_sepa/direct_debit/response.rb, line 37
def transaction_state
  value_at 'transaction-state'
end

Private Instance Methods

value_at(position, attribute: nil) click to toggle source

Returns the text of a node with the given position. If an additional attribute is given, this attribute is returned instead. This method provides mainly nil-safeness.

# File lib/wirecard_sepa/direct_debit/response.rb, line 71
def value_at(position, attribute: nil)
  node = xml_doc.at_css(position)
  node or return
  attribute ? node[attribute] : node.text
end
xml_doc() click to toggle source
# File lib/wirecard_sepa/direct_debit/response.rb, line 77
def xml_doc
  @xml_doc ||= Nokogiri::XML xml
end